151 assume(length <= 0 || length == (
int)pLength(
p));
153 if (
p ==
NULL)
return;
154 if (length <= 0) length = pLength(
p);
156 int i = SI_LOG2(length);
206 assume(length <= 0 || length == (
int)pLength(
p));
208 if (
p ==
NULL)
return;
210 if (length <= 0) length = (int)pLength(
p);
212 int i = SI_LOG2(length);
337 int l_in = pLength(
p);
347 if (
p ==
NULL)
break;
357 assume(l_dummy == (
int)pLength(pn));
371 int l_in = pLength(
p);
384 if (
p ==
NULL)
break;
395 assume(l_dummy == (
int)pLength(pn));
458 return b->buckets[
b->max_bucket].p;
#define omFreeBin(addr, bin)
#define omGetSpecBin(size)
char * p_String(poly p, ring lmRing, ring tailRing)
static poly p_Merge_q(poly p, poly q, const ring r)
void p_Write0(poly p, ring lmRing, ring tailRing)
void sBucketPrint(sBucket_pt bucket)
char * sBucketString(sBucket_pt bucket)
void sBucketDeleteAndDestroy(sBucket_pt *bucket_pt)
bool sIsEmpty(const sBucket_pt bucket)
Test whether bucket is empty!?
void sBucketClearMerge(sBucket_pt bucket, poly *p, int *length)
sBucketPoly buckets[BIT_SIZEOF_LONG - 3]
sBucket_pt sBucketCopy(const sBucket_pt bucket)
Copy sBucket non-intrusive!!!
void sBucket_Merge_p(sBucket_pt bucket, poly p, int length)
Merges p into Spoly: assumes Bpoly and p have no common monoms destroys p!
void sBucket_Add_p(sBucket_pt bucket, poly p, int length)
adds poly p to bucket destroys p!
STATIC_VAR omBin sBucket_bin
void sBucketCanonicalize(sBucket_pt bucket)
void sBucketDestroy(sBucket_pt *bucket)
void sBucket_Add_m(sBucket_pt bucket, poly p)
sBucket_pt sBucketCreate(const ring r)
poly sBucketSortMerge(poly p, const ring r)
Sorts p with bucketSort: assumes all monomials of p are different.
void sBucketClearAdd(sBucket_pt bucket, poly *p, int *length)
poly sBucketSortAdd(poly p, const ring r)
Sorts p with bucketSort: p may have equal monomials.
void sBucket_Merge_m(sBucket_pt bucket, poly p)
poly sBucketPeek(sBucket_pt b)
ring sBucketGetRing(const sBucket_pt bucket)
Returns bucket ring.