403{
415
416 if (maxlength!=-1) *
length = maxlength+1;
418 if ((wlength!=0) && (*
length!=wlength))
419 {
421 wtmp[0]=(*weights)[0];
423 *weights=wtmp;
424 }
426
427
431
432 if (syz_ring != origR)
433 {
436 }
437 else
438 {
440 }
441
442
443 if ((weights!=
NULL) && (*weights!=
NULL)&& ((*weights)[0]!=
NULL))
444 {
446 {
447 WarnS(
"wrong weights given(1):"); (*weights)[0]->show();
PrintLn();
451 }
452 }
453
454 if ((weights==
NULL) || (*weights==
NULL) || ((*weights)[0]==
NULL))
455 {
458 {
461 }
462 }
463 else
464 {
465 if ((weights!=
NULL) && (*weights!=
NULL)&& ((*weights)[0]!=
NULL))
466 {
469 }
470 }
471
472#ifdef HAVE_PLURAL
474 {
475
477 }
478#endif
479
481 {
488 {
490 setRegularity =
FALSE;
491 }
492 }
493 else
494 {
495 setRegularity =
FALSE;
496 }
497
498
500 ((maxlength==-1) || (syzIndex<=maxlength)))
501
502
503 {
506 {
510 {
512 if (*weights!=
NULL) tempW[
j] = (*weights)[
j];
513
514 }
519 *weights = tempW;
520 }
521
522 if (syzIndex>0)
523 {
526 }
528 if (minim || (syzIndex!=0))
529 {
533 res[syzIndex] = temp;
534 }
535
537 {
542 }
543 else
544 {
546 }
547 completeMinim=(syzIndex!=maxlength) || (maxlength ==-1) || (hom!=
isHomog);
548 syzIndex++;
550
552 {
553 if ((minim)||(syzIndex>1))
555 if (!completeMinim)
556
557 {
559 }
560 }
561
563 {
564
565
566
572 else
574 (*weights)[syzIndex] =
new intvec(
k);
576 {
578 {
584 }
585 }
587 {
591 }
592 }
593 }
594
595
599
601 if (!oldDegBound)
603
604 for (
i=1;
i<=syzIndex;
i++)
605 {
607 {
610 }
611 }
612
613 if (origR != syz_ring)
614 {
616 for (
i=0;
i<=syzIndex;
i++)
617 {
619 }
621 }
624}
ideal idSyzygies(ideal h1, tHomog h, intvec **w, BOOLEAN setSyzComp, BOOLEAN setRegularity, int *deg, GbVariant alg)
#define SI_RESTORE_OPT1(A)
#define TEST_OPT_DEGBOUND
#define TEST_OPT_NOTREGULARITY
#define TEST_OPT_NO_SYZ_MINIM
void rChangeCurrRing(ring r)
static long pTotaldegree(poly p)
ideal idrMoveR_NoSort(ideal &id, ring src_r, ring dest_r)
ideal idrCopyR_NoSort(ideal id, ring src_r, ring dest_r)
ring rAssure_SyzComp(const ring r, BOOLEAN complete)
int rGetMaxSyzComp(int i, const ring r)
return the max-comonent wchich has syzIndex i Assume: i<= syzIndex_limit
void rDelete(ring r)
unconditionally deletes fields in r
void rSetSyzComp(int k, const ring r)
#define rField_is_Ring(R)
void id_Shift(ideal M, int s, const ring r)
static int idElem(const ideal F)
number of non-zero polys in F
static intvec * syPrepareModComp(ideal arg, intvec **w)