504 while ((Fl!=0) && (arg->m[Fl-1]==
NULL)) Fl--;
506 int i,
j,
l,
k,kkk,Sl=0,syComponentOrder=
currRing->ComponentOrder;
507 int wend,lini,ltR,gencQ=0;
511 poly q,toRed,syz,lastmonom,multWith;
520 if (modcomp!=
NULL) (*modcomp)->show(0,0);
523 newmodcomp =
new intvec(Fl+2);
534 Flength = (
int*)
omAlloc0(Fl*
sizeof(
int));
541 (*newmodcomp)[
j+1] = Sl;
548 if (syComponentOrder==1)
561 for (
k=lini;
k<wend;
k++)
580 lastmonom =
pNext(syz);
582 lastmonom->coef = bn;
583 lastmonom->coef =
nInpNeg(lastmonom->coef);
590 syz->coef =
nInpNeg(syz->coef);
635 printf(
"toRed in Pair[%d, %d]:",
j,
k);
647 printf(
"toRed in Pair[%d, %d]:",
j,
k);
652 isNotReduced =
FALSE;
668 WerrorS(
"ideal not a standard basis");
683 lastmonom->coef =
nDiv(lastmonom->coef,F[
l]->coef);
715 (*newmodcomp)[
j+2] = Sl;
716 (*Shdl)[Sl] =
syRedtail2(syz,*Shdl,newmodcomp);
717 (*newmodcomp)[
j+2] = 0;
727 (*newmodcomp)[Fl+1] = Sl;
734 *modcomp = newmodcomp;
KINLINE poly ksOldCreateSpoly(poly p1, poly p2, poly spNoether, ring r)
void kBucketClear(kBucket_pt bucket, poly *p, int *length)
void kBucketDestroy(kBucket_pt *bucket_pt)
void kBucketInit(kBucket_pt bucket, poly lm, int length)
kBucket_pt kBucketCreate(const ring bucket_ring)
Creation/Destruction of buckets.
number kBucketPolyRed(kBucket_pt bucket, poly p1, int l1, poly spNoether)
const poly kBucketGetLm(kBucket_pt bucket)
int ksCheckCoeff(number *a, number *b)
static number & pGetCoeff(poly p)
return an alias to the leading coefficient of p assumes that p != NULL NOTE: not copy
void pEnlargeSet(poly **p, int l, int increment)
static unsigned pLength(poly a)
#define __p_Mult_nn(p, n, r)
#define pCopy(p)
return a copy of the poly
ideal idInit(int idsize, int rank)
initialise an ideal / module
static void syCreatePairs(polyset F, int lini, int wend, int k, int j, int i, polyset pairs, int regularPairs=0, ideal mW=NULL)
poly sySpecNormalize(poly toNorm, ideal mW=NULL)
static poly syRedtail2(poly p, polyset redWith, intvec *modcomp)