Go to the source code of this file.
◆ MULTIPLY_BUCKET
#define MULTIPLY_BUCKET |
( |
|
B, |
|
|
|
I |
|
) |
| |
◆ p_kBucketSetLm__T()
Definition at line 27 of file p_kBucketSetLm__T.cc.
28{
30 poly lt;
32 assume(bucket->buckets[0] ==
NULL && bucket->buckets_length[0] == 0);
33 DECLARE_LENGTH(
const unsigned long length = r->ExpL_Size);
34 DECLARE_ORDSGN(const long* ordsgn = r->ordsgn);
36
37 do
38 {
40 for (
int i = 1;
i<=bucket->buckets_used;
i++)
41 {
42 if (bucket->buckets[
i] !=
NULL)
43 {
45 p = bucket->buckets[
j];
47 {
50 goto Continue;
51 }
53 p_MemCmp__T(bucket->buckets[
i]->exp,
p->exp,
length, ordsgn,
goto Equal,
goto Greater,
goto Continue);
54
56 {
58 {
62 (bucket->buckets_length[
j])--;
63 }
65 goto Continue;
66 }
67
69 {
72 #if 0
75 #else
76 n_InpAdd__T(tn,
pGetCoeff(bucket->buckets[
i]), r->cf);
78 #endif
79 p = bucket->buckets[
i];
83 (bucket->buckets_length[
i])--;
84 }
85
86 Continue:;
87 }
88 }
89 p = bucket->buckets[
j];
91 {
95 (bucket->buckets_length[
j])--;
97 }
98 }
100
102 {
103 return;
104 }
105
107 lt = bucket->buckets[
j];
108 bucket->buckets[
j] =
pNext(lt);
109 bucket->buckets_length[
j]--;
111 bucket->buckets[0] = lt;
112 bucket->buckets_length[0] = 1;
113
114 kBucketAdjustBucketsUsed(bucket);
115}
static BOOLEAN Equal(number a, number b, const coeffs)
static bool Greater(mono_type m1, mono_type m2)
static BOOLEAN length(leftv result, leftv arg)
#define p_FreeBinAddr(p, r)
static number & pGetCoeff(poly p)
return an alias to the leading coefficient of p assumes that p != NULL NOTE: not copy
#define MULTIPLY_BUCKET(B, I)
#define n_Delete__T(n, r)