139 poly spNother =
NULL);
153 ring new_tailRing,
omBin new_tailBin,
164#define kbTest(bucket) do {} while (0)
176#ifdef BUCKET_TWO_BASE
185#ifdef HAVE_PSEUDO_BUCKETS
190#ifdef HAVE_COEF_BUCKETS
199#ifndef HAVE_PSEUDO_BUCKETS
200static inline void kBucketAdjustBucketsUsed(
kBucket_pt bucket)
202 while ( bucket->buckets_used > 0 &&
203 bucket->buckets[bucket->buckets_used] ==
NULL)
204 (bucket->buckets_used)--;
214#ifdef HAVE_COEF_BUCKETS
218 poly& lead = bucket->buckets[0];
221 _p_kBucketSetLm(bucket);
223#ifdef HAVE_COEF_BUCKETS
238 #ifdef HAVE_COEF_BUCKETS
241 bucket->buckets[0] =
NULL;
242 bucket->buckets_length[0] = 0;
CFFList append(const CFFList &Inputlist, const CFFactor &TheFactor)
int comp(const CanonicalForm &A, const CanonicalForm &B)
compare polynomials
static BOOLEAN length(leftv result, leftv arg)
poly kBucketGetLm(kBucket_pt bucket, p_kBucketSetLm_Proc_Ptr _p_kBucketSetLm)
void kBucketClear(kBucket_pt bucket, poly *p, int *length)
kBucket_pt kBucketCreate(const ring r)
Creation/Destruction of buckets.
void kBucket_Add_q(kBucket_pt bucket, poly q, int *lq)
Add to Bucket a poly ,i.e. Bpoly == Bpoly + q.
BOOLEAN kbTest(kBucket_pt bucket)
Tests.
void kBucketShallowCopyDelete(kBucket_pt bucket, ring new_tailRing, omBin new_tailBin, pShallowCopyDeleteProc p_shallow_copy_delete)
For changing the ring of the Bpoly to new_tailBin.
void kBucketDeleteAndDestroy(kBucket_pt *bucket)
void kBucketSetLm(kBucket_pt bucket, poly lm)
void kBucket_Mult_n(kBucket_pt bucket, number n)
Multiply Bucket by number ,i.e. Bpoly == n*Bpoly.
void kBucketNormalize(kBucket_pt bucket)
apply n_Normalize to all coefficients
poly kBucket_ExtractLarger_Add_q(kBucket_pt bucket, poly append, poly q, int *lq)
number kBucketPolyRed(kBucket_pt bucket, poly p, int l, poly spNoether)
int kBucketCanonicalize(kBucket_pt bucket)
Canonicalizes Bpoly, i.e. converts polys of buckets into one poly in one bucket: Returns number of bu...
int ksCheckCoeff(number *a, number *b, const coeffs r)
poly kBucketExtractLm(kBucket_pt bucket)
void kBucketAdjust(kBucket_pt bucket, int i)
Bucket number i from bucket is out of length sync, resync.
poly kBucket_ExtractLarger(kBucket_pt bucket, poly q, poly append)
Extract all monomials of bucket which are larger than q Append those to append, and return last monom...
poly kBucketExtractLmOfBucket(kBucket_pt bucket, int i)
void kBucket_Plus_mm_Mult_pp(kBucket_pt bucket, poly m, poly p, int l)
Bpoly == Bpoly + m*p; where m is a monom Does not destroy p and m assume (l <= 0 || pLength(p) == l)
void kBucket_Minus_m_Mult_p(kBucket_pt bucket, poly m, poly p, int *l, poly spNother=NULL)
Bpoly == Bpoly - m*p; where m is a monom Does not destroy p and m (TODO: rename into kBucket_Minus_mm...
void kBucketTakeOutComp(kBucket_pt bucket, long comp, poly *p, int *l)
void kBucketPolyRedNF(kBucket_pt bucket, poly p1, int l1, poly spNoether)
BOOLEAN kBucketIsCleared(kBucket_pt bucket)
void kBucketDestroy(kBucket_pt *bucket)
#define MAX_BUCKET
Bucket definition (should be no one elses business, though)
void kBucketSimpleContent(kBucket_pt bucket)
void kBucketInit(kBucket_pt bucket, poly p, int length)
The main handler for Singular numbers which are suitable for Singular polynomials.
void(* p_kBucketSetLm_Proc_Ptr)(kBucket_pt bucket)
poly(* pShallowCopyDeleteProc)(poly s_p, ring source_r, ring dest_r, omBin dest_bin)
returns a poly from dest_r which is a ShallowCopy of s_p from source_r assumes that source_r->N == de...