Go to the source code of this file.
|
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) |
|
int * | iv2array (intvec *iv, const ring R) |
|
long | totaldegreeWecart (poly p, ring r) |
|
long | totaldegreeWecart_IV (poly p, ring r, const int *w) |
|
long | maxdegreeWecart (poly p, int *l, ring r) |
|
◆ iv2array()
Definition at line 200 of file weight.cc.
201{
203 int len=0;
207
208 for(
i=len;
i>0;
i--)
s[
i]=(*iv)[
i-1];
210}
static int si_min(const int a, const int b)
const CanonicalForm int s
static short rVar(const ring r)
#define rVar(r) (r->N)
◆ kEcartWeights()
Definition at line 182 of file weight.cc.
183{
186
191 else
194 wCall(
s, sl,
x, (
double)2.0 / (
double)n,
R);
195 for (
i = n;
i!=0;
i--)
198}
#define omFreeSize(addr, size)
BOOLEAN rHasLocalOrMixedOrdering(const ring r)
THREAD_VAR double(* wFunctional)(int *degw, int *lpol, int npol, double *rel, double wx, double wNsqr)
void wCall(poly *s, int sl, int *x, double wNsqr, const ring R)
double wFunctionalBuch(int *degw, int *lpol, int npol, double *rel, double wx, double wNsqr)
double wFunctionalMora(int *degw, int *lpol, int npol, double *rel, double wx, double wNsqr)
◆ maxdegreeWecart()
Definition at line 247 of file weight.cc.
248{
252
256 {
261 }
264}
static int max(int a, int b)
long totaldegreeWecart(poly p, ring r)
◆ totaldegreeWecart()
long totaldegreeWecart |
( |
poly |
p, |
|
|
ring |
r |
|
) |
| |
Definition at line 217 of file weight.cc.
218{
221
225}
static long p_GetExp(const poly p, const unsigned long iBitmask, const int VarOffset)
get a single variable exponent @Note: the integer VarOffset encodes:
EXTERN_VAR short * ecartWeights
◆ totaldegreeWecart_IV()
◆ wAdd()
Definition at line 132 of file weight0.cc.
133{
135
140 {
143 }
144 else
145 {
147 *
ex++ += (*
B++) *
xx;
148 }
149}
◆ wCall()
Definition at line 108 of file weight.cc.
109{
114
119 for (
i = n;
i!=0;
i--)
122 {
124 return;
125 }
128 q = (n + 1) *
mons *
sizeof(
int);
133 for (
i = n;
i!=0;
i--)
140 memset(
x, 0, (n + 1) *
sizeof(
int));
145 for (
i = n;
i!=0;
i--)
146 {
149 }
153 {
154 for (
i = n;
i!=0;
i--)
156 }
157 else
158 {
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175 }
179}
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)
static void wDimensions(poly *s, int sl, int *lpol, int *npol, int *mons)
void wNorm(int *degw, int *lpol, int npol, double *rel)
static void wInit(poly *s, int sl, int mons, int *A, const ring R)
void wAdd(int *A, int mons, int kn, int xx, int rvar)
◆ wDimensions()
Definition at line 34 of file weight.cc.
35{
38
40 for (
i = 0;
i <= sl;
i++)
41 {
44 {
48 {
51 }
53 {
56 }
57 }
58 }
61}
◆ wFirstSearch()
Definition at line 152 of file weight0.cc.
154{
160
163 xn = n + 6 + (21 / n);
173 t = 1;
175 {
176 while (t < n)
177 {
181 if ((
y1 + n - t) <=
xn)
182 {
188 t++;
189 }
190 else
191 {
196 t--;
197 if (t==0)
198 {
202 return;
203 }
204 }
205 }
216 {
219 }
220 t--;
221 }
222}
const CanonicalForm int const CFList const Variable & y
static void wSub(int *A, int mons, int kn, int xx, int rvar)
void wAdd(int *A, int mons, int kn, int xx, int rvar)
◆ wFunctionalBuch()
Definition at line 78 of file weight0.cc.
80{
84 double *r;
85
91 {
94 {
100 }
105 }
106 if (
ghom > (
double)0.5)
109}
Rational pow(const Rational &a, int e)
◆ wFunctionalMora()
Definition at line 34 of file weight0.cc.
36{
40 double *r;
41
48 {
51 {
57 }
62 if (
pfmax > (
double)0.5)
64 else
68 }
69 if (
ghom > (
double)0.8)
70 {
73 }
75}
◆ wGcd()
Definition at line 352 of file weight0.cc.
353{
355
359 {
362 break;
365 {
369 }
370 do
371 {
375 }
379 return;
380 }
381 for (
i = n;
i!=0 ;
i--)
383}
◆ wInit()
Definition at line 64 of file weight.cc.
65{
66 int n, a,
i,
j, *
B, *C;
68 int *pl;
69
72 a = (n + 1) * sizeof(int);
74 for (
i = 0;
i <= sl;
i++)
75 {
78 {
81 {
85 for (
j = 0;
j < n;
j++)
86 {
89 }
90 }
92 {
96 for (
j = 0;
j < n;
j++)
97 {
100 }
102 }
103 }
104 }
106}
static void p_GetExpV(poly p, int *ev, const ring r)
◆ wNorm()
Definition at line 463 of file weight0.cc.
464{
467 double *r;
468
472 {
475 {
479 }
481 r++;
482 }
483}
◆ wSecondSearch()
Definition at line 295 of file weight0.cc.
297{
300
306 {
307 wEstimate(
A,
x,
lpol,
npol,
mons,
wx,
rel, &
fx, &
s0, &
s1, &
s2,
wNsqr,
rvar);
309 {
313 {
316 }
317 else
318 break;
319 }
320 else
321 {
324 {
328 break;
329 }
331 {
335 }
336 else
337 break;
338 }
341 else
342 {
345 }
347 }
349}
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)
static double wPrWeight(int *x, int n)
◆ wFunctional
THREAD_VAR double(* wFunctional) (int *degw, int *lpol, int npol, double *rel, double wx, double wNsqr) |
( |
int * |
degw, |
|
|
int * |
lpol, |
|
|
int |
npol, |
|
|
double * |
rel, |
|
|
double |
wx, |
|
|
double |
wNsqr |
|
) |
| |