510 while ((Fl!=0) && (
arg->m[Fl-1]==
NULL)) Fl--;
512 int i,
j,
l,
k,kkk,Sl=0,syComponentOrder=
currRing->ComponentOrder;
513 int wend,lini,ltR,gencQ=0;
517 poly q,toRed,syz,lastmonom,multWith;
526 if (modcomp!=
NULL) (*modcomp)->show(0,0);
529 newmodcomp =
new intvec(Fl+2);
540 Flength = (
int*)
omAlloc0(Fl*
sizeof(
int));
547 (*newmodcomp)[j+1] = Sl;
554 if (syComponentOrder==1)
562 while ((k<j) && (
pGetComp(F[k]) != i)) k++;
567 for (k=lini;k<wend;k++)
581 syz =
pCopy(pairs[k]);
586 lastmonom =
pNext(syz);
588 lastmonom->coef = bn;
589 lastmonom->coef =
nInpNeg(lastmonom->coef);
596 syz->coef =
nInpNeg(syz->coef);
636 l = (**modcomp)[
pGetComp(toRed)+1]-1;
641 printf(
"toRed in Pair[%d, %d]:", j, k);
653 printf(
"toRed in Pair[%d, %d]:", j, k);
658 isNotReduced =
FALSE;
665 for(k=j;k<Fl;k++)
pDelete(&(pairs[k]));
674 WerrorS(
"ideal not a standard basis");
689 lastmonom->coef =
nDiv(lastmonom->coef,F[l]->coef);
721 (*newmodcomp)[j+2] = Sl;
722 (*Shdl)[Sl] =
syRedtail2(syz,*Shdl,newmodcomp);
723 (*newmodcomp)[j+2] = 0;
733 (*newmodcomp)[Fl+1] = Sl;
740 *modcomp = newmodcomp;
void kBucketClear(kBucket_pt bucket, poly *p, int *length)
void kBucketInit(kBucket_pt bucket, poly lm, int length)
static poly syRedtail2(poly p, polyset redWith, intvec *modcomp)
number kBucketPolyRed(kBucket_pt bucket, poly p1, int l1, poly spNoether)
#define omFreeSize(addr, size)
const poly kBucketGetLm(kBucket_pt bucket)
int ksCheckCoeff(number *a, number *b)
KINLINE poly ksOldCreateSpoly(poly p1, poly p2, poly spNoether, ring r)
void WerrorS(const char *s)
static number & pGetCoeff(poly p)
return an alias to the leading coefficient of p assumes that p != NULL NOTE: not copy ...
kBucket_pt kBucketCreate(ring bucket_ring)
Creation/Destruction of buckets.
#define pGetComp(p)
Component.
static int pLength(poly a)
ring currRing
Widely used global variable which specifies the current polynomial ring for Singular interpreter and ...
void kBucketDestroy(kBucket_pt *bucket_pt)
void PrintS(const char *s)
#define pHead(p)
returns newly allocated copy of Lm(p), coef is copied, next=NULL, p might be NULL ...
poly sySpecNormalize(poly toNorm, ideal mW=NULL)
ideal idInit(int idsize, int rank)
initialise an ideal / module
#define pDivisibleBy(a, b)
returns TRUE, if leading monom of a divides leading monom of b i.e., if there exists a expvector c > ...
void pEnlargeSet(poly **p, int l, int increment)
void pNorm(poly p, const ring R=currRing)
static void syCreatePairs(polyset F, int lini, int wend, int k, int j, int i, polyset pairs, int regularPairs=0, ideal mW=NULL)
void idDelete(ideal *h)
delete an ideal
#define pCopy(p)
return a copy of the poly