Borderbasix

workspace.hpp
Go to the documentation of this file.
1 #ifndef ALREADY_workspace
2 #define ALREADY_workspace
3 long min(long a,long b)
4 {
5  return ((a<b)?a:b);
6 }
7 template<typename T>
8 void MAC_REV_FREE(void *,int);
9 
10 template<typename coeff>
11  struct workspace{
12  coeff *tabcoeff;
13  unsigned char *tabnf;
14  int size;
15  int sizenf;
16 };
17 
18 template<typename coeff>
20 {
21  w->tabcoeff=(coeff*)MAC_REV_REALLOC<coeff>(w->tabcoeff,w->size*sizeof(coeff)
22  ,w->size*2*sizeof(coeff));
23  w->size*=2;
24  for(int i=w->size/2;i<w->size;i++)
25  w->tabcoeff[i]=0;
26 
27  w->tabnf=(unsigned char*)realloc(w->tabnf,w->size/8+1);
28  for(int i=w->sizenf;i<w->size/8+1;i++)
29  w->tabnf[i]=0;
30  w->sizenf=w->size/8+1;
31 }
32 
33 template<typename coeff>
35 {
36  MAC_REV_FREE<coeff>(w->tabcoeff,w->size*sizeof(coeff));
37  free(w->tabnf);
38  w->size=0;
39  w->sizenf=0;
40 }
41 
42 template<typename coeff>
44 {
45  w->tabcoeff=(coeff*)MAC_REV_MALLOC<coeff>(80*sizeof(coeff));
46  for(int i=0;i<80;i++)
47  w->tabcoeff[i]=0;
48 
49  w->size=80;
50  w->tabnf=(unsigned char*)malloc(10);
51  for(int i=0;i<10;i++)
52  w->tabnf[i]=0;
53  w->sizenf=10;
54 
55 }
56 #endif //ALREADY_workspace
Definition: workspace.hpp:11
void free(void *)
void * malloc(YYSIZE_T)
coeff * tabcoeff
Definition: workspace.hpp:12
void MAC_REV_FREE(void *, int)
Definition: memory.hpp:65
unsigned char * tabnf
Definition: workspace.hpp:13
void destroy_space(workspace< coeff > *w)
Definition: workspace.hpp:34
void init_space(workspace< coeff > *w)
Definition: workspace.hpp:43
void increase_space(workspace< coeff > *w)
Definition: workspace.hpp:19
MSKint32t MSKint32t MSKint32t i
Definition: mosek.h:2278
int sizenf
Definition: workspace.hpp:15
MSKstreamtypee MSKint32t MSKint32t MSKint32t MSKint32t MSKint32t MSKint32t MSKint32t MSKint32t MSKint32t a
Definition: mosek.h:3833
int size
Definition: workspace.hpp:14
long min(long a, long b)
Definition: workspace.hpp:3
Home  |  Download & InstallContributions