405{
415 int wlength=*length;
416
417 if (maxlength!=-1) *length = maxlength+1;
418 else *length = 5;
419 if ((wlength!=0) && (*length!=wlength))
420 {
422 wtmp[0]=(*weights)[0];
424 *weights=wtmp;
425 }
427
428
432
433 if (syz_ring != origR)
434 {
437 }
438 else
439 {
441 }
442
443
444 if ((weights!=
NULL) && (*weights!=
NULL)&& ((*weights)[0]!=
NULL))
445 {
447 {
448 WarnS(
"wrong weights given(1):"); (*weights)[0]->show();
PrintLn();
452 }
453 }
454
455 if ((weights==
NULL) || (*weights==
NULL) || ((*weights)[0]==
NULL))
456 {
459 {
462 }
463 }
464 else
465 {
466 if ((weights!=
NULL) && (*weights!=
NULL)&& ((*weights)[0]!=
NULL))
467 {
470 }
471 }
472
473#ifdef HAVE_PLURAL
475 {
476
478 }
479#endif
480
482 {
489 {
491 setRegularity =
FALSE;
492 }
493 }
494 else
495 {
496 setRegularity =
FALSE;
497 }
498
499
501 ((maxlength==-1) || (syzIndex<=maxlength)))
502
503
504 {
506 if (syzIndex+1==*length)
507 {
510 for (
j=0;
j<*length;
j++)
511 {
513 if (*weights!=
NULL) tempW[
j] = (*weights)[
j];
514
515 }
518 *length += 5;
520 *weights = tempW;
521 }
522
523 if (syzIndex>0)
524 {
527 }
529 if (minim || (syzIndex!=0))
530 {
534 res[syzIndex] = temp;
535 }
536
538 {
543 }
544 else
545 {
547 }
548 completeMinim=(syzIndex!=maxlength) || (maxlength ==-1) || (hom!=
isHomog);
549 syzIndex++;
551
553 {
554 if ((minim)||(syzIndex>1))
556 if (!completeMinim)
557
558 {
560 }
561 }
562
564 {
565
566
567
569 k = max_comp - rGetCurrSyzLimit(
currRing);
573 else
575 (*weights)[syzIndex] =
new intvec(
k);
577 {
579 {
584 (*((*weights)[syzIndex]))[
i] = (*
w)[
i+rGetCurrSyzLimit(
currRing)];
585 }
586 }
588 {
592 }
593 }
594 }
595
596
600
602
603 for (
i=1;
i<=syzIndex;
i++)
604 {
606 {
609 }
610 }
611
612 if (origR != syz_ring)
613 {
615 for (
i=0;
i<=syzIndex;
i++)
616 {
618 }
620 }
623}
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)
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 intvec * syPrepareModComp(ideal arg, intvec **w)