500{
502
513
514
515#ifdef WRITE_BUCKETS
521#endif
522
524
525
528 else
529 {
532 }
533
536 {
538 }
540 {
541 (*newmodcomp)[
j+1] =
Sl;
543 {
546 }
549 {
552 }
553 else
554 {
558 }
562 {
564 {
566 {
569 }
570
572 {
576
578
581
585 }
586 else
587 {
590 syz->coef =
nInpNeg(syz->coef);
594 }
597
598
600 {
602 {
604 }
605 else
606 {
608 }
609 }
612 else
613 {
617 }
622 {
624 {
626 }
627
628
629
633#ifdef WRITE_BUCKETS
635 printf(
"toRed in Pair[%d, %d]:",
j,
k);
638#endif
639
641 {
643 {
646#ifdef WRITE_BUCKETS
647 printf(
"toRed in Pair[%d, %d]:",
j,
k);
649#endif
653 }
654 else
655 {
657
661
662
664
666
667
668 WerrorS(
"ideal not a standard basis");
669
671 }
672 }
673 else
674 {
675
678 {
680 }
684
686
689 {
690
691#ifdef WRITE_BUCKETS
693#endif
695 }
697
699
700
701 }
702 }
704
706 {
708 {
711 }
714 {
715 (*newmodcomp)[
j+2] =
Sl;
717 (*newmodcomp)[
j+2] = 0;
718 }
719 else
722 }
723 }
724 }
725
726 }
727 (*newmodcomp)[
Fl+1] =
Sl;
730 else
735
738}
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)
int ksCheckCoeff(number *a, number *b, const coeffs r)
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)
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 int 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)