Functions | Variables
weight.cc File Reference
#include <misc/auxiliary.h>
#include <omalloc/omalloc.h>
#include <misc/options.h>
#include <misc/intvec.h>
#include <polys/monomials/ring.h>
#include <polys/monomials/p_polys.h>
#include <polys/weight.h>
#include <math.h>

Go to the source code of this file.

Functions

double wFunctionalMora (int *degw, int *lpol, int npol, double *rel, double wx, double wNsqr)
 
double wFunctionalBuch (int *degw, int *lpol, int npol, double *rel, double wx, double wNsqr)
 
void wAdd (int *A, int mons, int kn, int xx, int rvar)
 
void wNorm (int *degw, int *lpol, int npol, double *rel)
 
void wFirstSearch (int *A, int *x, int mons, int *lpol, int npol, double *rel, double *fopt, double wNsqr, int rvar)
 
void wSecondSearch (int *A, int *x, int *lpol, int npol, int mons, double *rel, double *fk, double wNsqr, int rvar)
 
void wGcd (int *x, int n)
 
static void wDimensions (poly *s, int sl, int *lpol, int *npol, int *mons)
 
static void wInit (poly *s, int sl, int mons, int *A, const ring R)
 
void wCall (poly *s, int sl, int *x, double wNsqr, const ring R)
 
void kEcartWeights (poly *s, int sl, short *eweight, const ring R)
 
short * iv2array (intvec *iv, const ring R)
 
long totaldegreeWecart (poly p, ring r)
 
long totaldegreeWecart_IV (poly p, ring r, const short *w)
 
long maxdegreeWecart (poly p, int *l, ring r)
 

Variables

double(* wFunctional )(int *degw, int *lpol, int npol, double *rel, double wx, double wNsqr)
 

Function Documentation

short* iv2array ( intvec iv,
const ring  R 
)

Definition at line 208 of file weight.cc.

209 {
210  short *s=(short *)omAlloc0((rVar(R)+1)*sizeof(short));
211  int len=0;
212  if(iv!=NULL)
213  len=si_min(iv->length(),rVar(R)); // usually: rVar(R)==length()
214  int i;
215  //for(i=pVariables;i>len;i--) s[i]=1;
216  for(i=len;i>0;i--) s[i]=(*iv)[i-1];
217  return s;
218 }
const CanonicalForm int s
Definition: facAbsFact.cc:55
static int si_min(const int a, const int b)
Definition: auxiliary.h:167
static short rVar(const ring r)
#define rVar(r) (r->N)
Definition: ring.h:537
int length() const
Definition: intvec.h:86
const ring R
Definition: DebugPrint.cc:36
int i
Definition: cfEzgcd.cc:123
#define NULL
Definition: omList.c:10
#define omAlloc0(size)
Definition: omAllocDecl.h:211
void kEcartWeights ( poly s,
int  sl,
short *  eweight,
const ring  R 
)

Definition at line 190 of file weight.cc.

191 {
192  int n, i;
193  int *x;
194 
195  *eweight = 0;
196  n = rVar(R);
199  else
201  x = (int * )omAlloc(2 * (n + 1) * sizeof(int));
202  wCall(s, sl, x, (double)2.0 / (double)n, R);
203  for (i = n; i!=0; i--)
204  eweight[i] = x[i + n + 1];
205  omFreeSize((ADDRESS)x, 2 * (n + 1) * sizeof(int));
206 }
BOOLEAN rHasLocalOrMixedOrdering(const ring r)
Definition: ring.h:750
const CanonicalForm int s
Definition: facAbsFact.cc:55
#define omFreeSize(addr, size)
Definition: omAllocDecl.h:260
static short rVar(const ring r)
#define rVar(r) (r->N)
Definition: ring.h:537
void * ADDRESS
Definition: auxiliary.h:161
#define omAlloc(size)
Definition: omAllocDecl.h:210
double(* wFunctional)(int *degw, int *lpol, int npol, double *rel, double wx, double wNsqr)
Definition: weight.cc:28
const ring R
Definition: DebugPrint.cc:36
int i
Definition: cfEzgcd.cc:123
double wFunctionalMora(int *degw, int *lpol, int npol, double *rel, double wx, double wNsqr)
Definition: weight0.c:38
void wCall(poly *s, int sl, int *x, double wNsqr, const ring R)
Definition: weight.cc:116
Variable x
Definition: cfModGcd.cc:4023
double wFunctionalBuch(int *degw, int *lpol, int npol, double *rel, double wx, double wNsqr)
Definition: weight0.c:82
long maxdegreeWecart ( poly  p,
int *  l,
ring  r 
)

Definition at line 255 of file weight.cc.

256 {
257  short k=p_GetComp(p, r);
258  int ll=1;
259  long t,max;
260 
261  max=totaldegreeWecart(p, r);
262  pIter(p);
263  while ((p!=NULL) && (p_GetComp(p, r)==k))
264  {
265  t=totaldegreeWecart(p, r);
266  if (t>max) max=t;
267  ll++;
268  pIter(p);
269  }
270  *l=ll;
271  return max;
272 }
long totaldegreeWecart(poly p, ring r)
Definition: weight.cc:225
return P p
Definition: myNF.cc:203
#define p_GetComp(p, r)
Definition: monomials.h:72
int k
Definition: cfEzgcd.cc:93
#define pIter(p)
Definition: monomials.h:44
const ring r
Definition: syzextra.cc:208
static int max(int a, int b)
Definition: fast_mult.cc:264
#define NULL
Definition: omList.c:10
int l
Definition: cfEzgcd.cc:94
long totaldegreeWecart ( poly  p,
ring  r 
)

Definition at line 225 of file weight.cc.

226 {
227  int i;
228  long j =0;
229 
230  for (i=rVar(r); i>0; i--)
231  j += (int)(p_GetExp(p,i,r) * ecartWeights[i]);
232  return j;
233 }
return P p
Definition: myNF.cc:203
short * ecartWeights
Definition: weight0.c:32
static short rVar(const ring r)
#define rVar(r) (r->N)
Definition: ring.h:537
const ring r
Definition: syzextra.cc:208
static long p_GetExp(const poly p, const unsigned long iBitmask, const int VarOffset)
get a single variable exponent : the integer VarOffset encodes:
Definition: p_polys.h:464
int j
Definition: myNF.cc:70
int i
Definition: cfEzgcd.cc:123
long totaldegreeWecart_IV ( poly  p,
ring  r,
const short *  w 
)

Definition at line 239 of file weight.cc.

240 {
241  int i;
242  long j =0;
243 
244  for (i=rVar(r); i>0; i--)
245  j += (long)((int)(p_GetExp(p,i,r) * w[i]));
246  return j;
247 }
return P p
Definition: myNF.cc:203
static short rVar(const ring r)
#define rVar(r) (r->N)
Definition: ring.h:537
const ring r
Definition: syzextra.cc:208
static long p_GetExp(const poly p, const unsigned long iBitmask, const int VarOffset)
get a single variable exponent : the integer VarOffset encodes:
Definition: p_polys.h:464
int j
Definition: myNF.cc:70
int i
Definition: cfEzgcd.cc:123
const CanonicalForm & w
Definition: facAbsFact.cc:55
void wAdd ( int *  A,
int  mons,
int  kn,
int  xx,
int  rvar 
)

Definition at line 136 of file weight0.c.

137 {
138  int i, *B, *ex;
139 
140  B = A + ((kn - 1) * mons);
141  ex = A + (rvar * mons);
142  i = mons;
143  if (xx == 1)
144  {
145  for (/* i=mons */; i!=0 ; i--)
146  *ex++ += *B++;
147  }
148  else
149  {
150  for (/* i=mons */; i!=0 ; i--)
151  *ex++ += (*B++) * xx;
152  }
153 }
#define A
Definition: sirandom.c:23
int i
Definition: cfEzgcd.cc:123
b *CanonicalForm B
Definition: facBivar.cc:51
void wCall ( poly s,
int  sl,
int *  x,
double  wNsqr,
const ring  R 
)

Definition at line 116 of file weight.cc.

117 {
118  int n, q, npol, mons, i;
119  int *A, *xopt, *lpol, *degw;
120  double f1, fx, eps, *rel;
121  void *adr;
122 
123  n = rVar(R);
124  lpol = (int * )omAlloc((sl + 1) * sizeof(int));
125  wDimensions(s, sl, lpol, &npol, &mons);
126  xopt = x + (n + 1);
127  for (i = n; i!=0; i--)
128  xopt[i] = 1;
129  if (mons==0)
130  {
131  omFreeSize((ADDRESS)lpol, (sl + 1) * sizeof(int));
132  return;
133  }
134  adr = (void * )omAllocAligned(npol * sizeof(double));
135  rel = (double*)adr;
136  q = (n + 1) * mons * sizeof(int);
137  A = (int * )omAlloc(q);
138  wInit(s, sl, mons, A, R);
139  degw = A + (n * mons);
140  memset(degw, 0, mons * sizeof(int));
141  for (i = n; i!=0; i--)
142  wAdd(A, mons, i, 1, rVar(R));
143  wNorm(degw, lpol, npol, rel);
144  f1 = (*wFunctional)(degw, lpol, npol, rel, (double)1.0, wNsqr);
145  if (TEST_OPT_PROT) Print("// %e\n",f1);
146  eps = f1;
147  fx = (double)2.0 * eps;
148  memset(x, 0, (n + 1) * sizeof(int));
149  wFirstSearch(A, x, mons, lpol, npol, rel, &fx, wNsqr, rVar(R));
150  if (TEST_OPT_PROT) Print("// %e\n",fx);
151  memcpy(x + 1, xopt + 1, n * sizeof(int));
152  memset(degw, 0, mons * sizeof(int));
153  for (i = n; i!=0; i--)
154  {
155  x[i] *= 16;
156  wAdd(A, mons, i, x[i], rVar(R));
157  }
158  wSecondSearch(A, x, lpol, npol, mons, rel, &fx, wNsqr, rVar(R));
159  if (TEST_OPT_PROT) Print("// %e\n",fx);
160  if (fx >= eps)
161  {
162  for (i = n; i!=0; i--)
163  xopt[i] = 1;
164  }
165  else
166  {
167  wGcd(xopt, n);
168 // if (BTEST1(22))
169 // {
170 // f1 = fx + (double)0.1 * (f1 - fx);
171 // wSimple(x, n);
172 // memset(degw, 0, mons * sizeof(int));
173 // for (i = n; i!=0; i--)
174 // wAdd(A, mons, i, x[i], rVar(R));
175 // eps = wPrWeight(x, n);
176 // fx = (*wFunctional)(degw, lpol, npol, rel, eps);
177 // if (fx < f1)
178 // {
179 // if (TEST_OPT_PROT) Print("// %e\n",fx);
180 // memcpy(xopt + 1, x + 1, n * sizeof(int));
181 // }
182 // }
183  }
184  omFreeSize((ADDRESS)A, q);
185  omFreeSize((ADDRESS)lpol, (sl + 1) * sizeof(int));
186  omFreeSize((ADDRESS)adr, npol * sizeof(double));
187 }
const CanonicalForm int s
Definition: facAbsFact.cc:55
#define Print
Definition: emacs.cc:83
#define TEST_OPT_PROT
Definition: options.h:98
#define omFreeSize(addr, size)
Definition: omAllocDecl.h:260
#define omAllocAligned
Definition: omAllocDecl.h:273
static short rVar(const ring r)
#define rVar(r) (r->N)
Definition: ring.h:537
void wAdd(int *A, int mons, int kn, int xx, int rvar)
Definition: weight0.c:136
void * ADDRESS
Definition: auxiliary.h:161
#define omAlloc(size)
Definition: omAllocDecl.h:210
void wSecondSearch(int *A, int *x, int *lpol, int npol, int mons, double *rel, double *fk, double wNsqr, int rvar)
Definition: weight0.c:299
#define A
Definition: sirandom.c:23
const ring R
Definition: DebugPrint.cc:36
int i
Definition: cfEzgcd.cc:123
static void wDimensions(poly *s, int sl, int *lpol, int *npol, int *mons)
Definition: weight.cc:42
static void wInit(poly *s, int sl, int mons, int *A, const ring R)
Definition: weight.cc:72
Variable x
Definition: cfModGcd.cc:4023
void wFirstSearch(int *A, int *x, int mons, int *lpol, int npol, double *rel, double *fopt, double wNsqr, int rvar)
Definition: weight0.c:156
void wNorm(int *degw, int *lpol, int npol, double *rel)
Definition: weight0.c:467
void wGcd(int *x, int n)
Definition: weight0.c:356
static void wDimensions ( poly s,
int  sl,
int *  lpol,
int *  npol,
int *  mons 
)
static

Definition at line 42 of file weight.cc.

43 {
44  int i, i1, j, k;
45  poly p, q;
46 
47  i1 = j = 0;
48  for (i = 0; i <= sl; i++)
49  {
50  p = s[i];
51  if (p!=NULL)
52  {
53  k = 1;
54  q = pNext(p);
55  while (q!=NULL)
56  {
57  k++;
58  q = pNext(q);
59  }
60  if (k > 1)
61  {
62  lpol[i1++] = k;
63  j += k;
64  }
65  }
66  }
67  *npol = i1;
68  *mons = j;
69 }
const CanonicalForm int s
Definition: facAbsFact.cc:55
return P p
Definition: myNF.cc:203
int k
Definition: cfEzgcd.cc:93
int j
Definition: myNF.cc:70
int i
Definition: cfEzgcd.cc:123
#define NULL
Definition: omList.c:10
#define pNext(p)
Definition: monomials.h:43
polyrec * poly
Definition: hilb.h:10
void wFirstSearch ( int *  A,
int *  x,
int  mons,
int *  lpol,
int  npol,
double *  rel,
double *  fopt,
double  wNsqr,
int  rvar 
)

Definition at line 156 of file weight0.c.

158 {
159  int a0, a, n, xn, t, xx, y1;
160  int *y, *degw, *xopt;
161  double fy, fmax, wx;
162  double *pr;
163  void *adr;
164 
165  fy = *fopt;
166  n = rvar;
167  xn = n + 6 + (21 / n);
168  a0 = n * sizeof(double);
169  a = n * sizeof(int);
170  y = (int * )omAlloc((long)a);
171  adr = (void * )omAllocAligned((long)a0);
172  pr = adr;
173  *pr = (double)1.0;
174  *y = 0;
175  degw = A + (n * mons);
176  xopt = x + (n + 2);
177  t = 1;
178  loop
179  {
180  while (t < n)
181  {
182  xx = x[t] + 1;
183  wx = pr[t-1] * (double)xx;
184  y1 = y[t-1] + xx;
185  if ((y1 + n - t) <= xn)
186  {
187  pr[t] = wx;
188  y[t] = y1;
189  x[t] = xx;
190  if (xx > 1)
191  wAdd(A, mons, t, 1, rvar);
192  t++;
193  }
194  else
195  {
196  xx = x[t] - 1;
197  x[t] = 0;
198  if (xx!=0)
199  wSub(A, mons, t, xx, rvar);
200  t--;
201  if (t==0)
202  {
203  *fopt = fy;
204  omFreeSize((ADDRESS)y, (long)a);
205  omFreeSize((ADDRESS)adr, (long)a0);
206  return;
207  }
208  }
209  }
210  xx = xn - y[t-1];
211  wx = pr[t-1] * (double)xx;
212  x[t] = xx;
213  xx--;
214  if (xx!=0)
215  wAdd(A, mons, t, xx, rvar);
216  fmax = (*wFunctional)(degw, lpol, npol, rel, wx,wNsqr);
217  if (xx!=0)
218  wSub(A, mons, t, xx, rvar);
219  if (fmax < fy)
220  {
221  fy = fmax;
222  memcpy(xopt, x + 1, a);
223  }
224  t--;
225  } /* end loop */
226 }
const CanonicalForm int const CFList const Variable & y
Definition: facAbsFact.cc:57
const poly a
Definition: syzextra.cc:212
loop
Definition: myNF.cc:98
#define omFreeSize(addr, size)
Definition: omAllocDecl.h:260
#define omAllocAligned
Definition: omAllocDecl.h:273
void * ADDRESS
Definition: auxiliary.h:161
#define omAlloc(size)
Definition: omAllocDecl.h:210
int xn
Definition: walk.cc:4467
static void wSub(int *A, int mons, int kn, int xx, int rvar)
Definition: weight0.c:116
#define A
Definition: sirandom.c:23
void wAdd(int *A, int mons, int kn, int xx, int rvar)
Definition: weight0.c:136
Variable x
Definition: cfModGcd.cc:4023
double wFunctionalBuch ( int *  degw,
int *  lpol,
int  npol,
double *  rel,
double  wx,
double  wNsqr 
)

Definition at line 82 of file weight0.c.

84 {
85  int i, j, ecl, ecu, ec;
86  int *ex;
87  double gfmax, ghom, pfmax;
88  double *r;
89 
90  ex = degw;
91  r = rel;
92  gfmax = (double)0.0;
93  ghom = (double)1.0;
94  for (i = 0; i < npol; i++)
95  {
96  ecu = ecl = *ex++;
97  for (j = lpol[i] - 1; j!=0 ; j--)
98  {
99  ec = *ex++;
100  if (ec < ecl)
101  ecl = ec;
102  else if (ec > ecu)
103  ecu = ec;
104  }
105  pfmax = (double)ecl / (double)ecu;
106  if (pfmax < ghom)
107  ghom = pfmax;
108  gfmax += (double)(ecu * ecu) * (*r++);
109  }
110  if (ghom > (double)0.5)
111  gfmax *= ((double)1.0 - (ghom * ghom)) / (double)0.75;
112  return gfmax / pow(wx, wNsqr);
113 }
const ring r
Definition: syzextra.cc:208
int j
Definition: myNF.cc:70
int i
Definition: cfEzgcd.cc:123
Rational pow(const Rational &a, int e)
Definition: GMPrat.cc:418
double wFunctionalMora ( int *  degw,
int *  lpol,
int  npol,
double *  rel,
double  wx,
double  wNsqr 
)

Definition at line 38 of file weight0.c.

40 {
41  int i, j, e1, ecu, ecl, ec;
42  int *ex;
43  double gfmax, gecart, ghom, pfmax;
44  double *r;
45 
46  ex = degw;
47  r = rel;
48  gfmax = (double)0.0;
49  gecart = (double)0.4 + (double)npol;
50  ghom = (double)1.0;
51  for (i = 0; i < npol; i++)
52  {
53  ecl = ecu = e1 = *ex++;
54  for (j = lpol[i] - 1; j!=0; j--)
55  {
56  ec = *ex++;
57  if (ec > ecu)
58  ecu = ec;
59  else if (ec < ecl)
60  ecl = ec;
61  }
62  pfmax = (double)ecl / (double)ecu;
63  if (pfmax < ghom)
64  ghom = pfmax;
65  pfmax = (double)e1 / (double)ecu;
66  if (pfmax > (double)0.5)
67  gecart -= (pfmax * pfmax);
68  else
69  gecart -= (double)0.25;
70  ecu = 2 * ecu - ecl;
71  gfmax += (double)(ecu * ecu) * (*r++);
72  }
73  if (ghom > (double)0.8)
74  {
75  ghom *= (double)5.0;
76  gecart *= ((double)5.0 - ghom);
77  }
78  return (gfmax * gecart) / pow(wx, wNsqr);
79 }
const ring r
Definition: syzextra.cc:208
int j
Definition: myNF.cc:70
int i
Definition: cfEzgcd.cc:123
Rational pow(const Rational &a, int e)
Definition: GMPrat.cc:418
void wGcd ( int *  x,
int  n 
)

Definition at line 356 of file weight0.c.

357 {
358  int i, b, a, h;
359 
360  i = n;
361  b = x[i];
362  loop
363  {
364  i--;
365  if (i==0)
366  break;
367  a = x[i];
368  if (a < b)
369  {
370  h = a;
371  a = b;
372  b = h;
373  }
374  do
375  {
376  h = a % b;
377  a = b;
378  b = h;
379  }
380  while (b!=0);
381  b = a;
382  if (b == 1)
383  return;
384  }
385  for (i = n; i!=0 ; i--)
386  x[i] /= b;
387 }
const poly a
Definition: syzextra.cc:212
loop
Definition: myNF.cc:98
int i
Definition: cfEzgcd.cc:123
Variable x
Definition: cfModGcd.cc:4023
static Poly * h
Definition: janet.cc:978
const poly b
Definition: syzextra.cc:213
static void wInit ( poly s,
int  sl,
int  mons,
int *  A,
const ring  R 
)
static

Definition at line 72 of file weight.cc.

73 {
74  int n, a, i, j, *B, *C;
75  poly p, q;
76  int *pl;
77 
78  B = A;
79  n = rVar(R);
80  a = (n + 1) * sizeof(int);
81  pl = (int *)omAlloc(a);
82  for (i = 0; i <= sl; i++)
83  {
84  p = s[i];
85  if (p!=NULL)
86  {
87  q = pNext(p);
88  if (q!=NULL)
89  {
90  C = B;
91  B++;
92  p_GetExpV(p, pl,R);
93  for (j = 0; j < n; j++)
94  {
95  *C = pl[j+1];
96  C += mons;
97  }
98  }
99  while (q!=NULL)
100  {
101  C = B;
102  B++;
103  p_GetExpV(q, pl,R);
104  for (j = 0; j < n; j++)
105  {
106  *C = pl[j+1];
107  C += mons;
108  }
109  pIter(q);
110  }
111  }
112  }
113  omFreeSize((ADDRESS)pl, a);
114 }
const CanonicalForm int s
Definition: facAbsFact.cc:55
const poly a
Definition: syzextra.cc:212
return P p
Definition: myNF.cc:203
static void p_GetExpV(poly p, int *ev, const ring r)
Definition: p_polys.h:1449
#define omFreeSize(addr, size)
Definition: omAllocDecl.h:260
static short rVar(const ring r)
#define rVar(r) (r->N)
Definition: ring.h:537
void * ADDRESS
Definition: auxiliary.h:161
#define omAlloc(size)
Definition: omAllocDecl.h:210
#define pIter(p)
Definition: monomials.h:44
int j
Definition: myNF.cc:70
#define A
Definition: sirandom.c:23
const ring R
Definition: DebugPrint.cc:36
int i
Definition: cfEzgcd.cc:123
#define NULL
Definition: omList.c:10
b *CanonicalForm B
Definition: facBivar.cc:51
#define pNext(p)
Definition: monomials.h:43
polyrec * poly
Definition: hilb.h:10
void wNorm ( int *  degw,
int *  lpol,
int  npol,
double *  rel 
)

Definition at line 467 of file weight0.c.

468 {
469  int i, j, ecu, ec;
470  int *ex;
471  double *r;
472 
473  ex = degw;
474  r = rel;
475  for (i = 0; i < npol; i++)
476  {
477  ecu = *ex++;
478  for (j = lpol[i] - 1; j!=0 ; j--)
479  {
480  ec = *ex++;
481  if (ec > ecu)
482  ecu = ec;
483  }
484  *r = (double)1.0 / (double)(ecu * ecu);
485  r++;
486  }
487 }
const ring r
Definition: syzextra.cc:208
int j
Definition: myNF.cc:70
int i
Definition: cfEzgcd.cc:123
void wSecondSearch ( int *  A,
int *  x,
int *  lpol,
int  npol,
int  mons,
double *  rel,
double *  fk,
double  wNsqr,
int  rvar 
)

Definition at line 299 of file weight0.c.

301 {
302  int n, s0, s1, s2, *xopt;
303  double fx, fopt, wx;
304 
305  n = rvar;
306  xopt = x + (n + 2);
307  fopt = *fk * (double)0.999999999999;
308  wx = wPrWeight(x, n);
309  loop
310  {
311  wEstimate(A, x, lpol, npol, mons, wx, rel, &fx, &s0, &s1, &s2, wNsqr, rvar);
312  if (fx > fopt)
313  {
314  if (s0!=0)
315  x[s0]--;
316  else if (s1!=0)
317  {
318  x[s1]--;
319  x[s2]--;
320  }
321  else
322  break;
323  }
324  else
325  {
326  fopt = fx;
327  if (s0!=0)
328  {
329  x[s0]--;
330  memcpy(xopt, x + 1, n * sizeof(int));
331  if (s1==0)
332  break;
333  }
334  else if (s1!=0)
335  {
336  x[s1]--;
337  x[s2]--;
338  memcpy(xopt, x + 1, n * sizeof(int));
339  }
340  else
341  break;
342  }
343  if (s0!=0)
344  wSub(A, mons, s0, 1, rvar);
345  else
346  {
347  wSub(A, mons, s1, 1, rvar);
348  wSub(A, mons, s2, 1, rvar);
349  }
350  wx = wPrWeight(x, n);
351  }
352  *fk = fopt;
353 }
static double wPrWeight(int *x, int n)
Definition: weight0.c:229
loop
Definition: myNF.cc:98
static void wSub(int *A, int mons, int kn, int xx, int rvar)
Definition: weight0.c:116
#define A
Definition: sirandom.c:23
static void wEstimate(int *A, int *x, int *lpol, int npol, int mons, double wx, double *rel, double *fopt, int *s0, int *s1, int *s2, double wNsqr, int rvar)
Definition: weight0.c:241
Variable x
Definition: cfModGcd.cc:4023

Variable Documentation

double(* wFunctional) (int *degw, int *lpol, int npol, double *rel, double wx, double wNsqr)

Definition at line 28 of file weight.cc.