391{
403
404 if (maxlength!=-1) *
length = maxlength+1;
406 if ((wlength!=0) && (*
length!=wlength))
407 {
409 wtmp[0]=(*weights)[0];
411 *weights=wtmp;
412 }
414
415
419
420 if (syz_ring != origR)
421 {
424 }
425 else
426 {
428 }
429
430
431 if ((weights!=
NULL) && (*weights!=
NULL)&& ((*weights)[0]!=
NULL))
432 {
434 {
435 WarnS(
"wrong weights given(1):"); (*weights)[0]->show();
PrintLn();
439 }
440 }
441
442 if ((weights==
NULL) || (*weights==
NULL) || ((*weights)[0]==
NULL))
443 {
446 {
449 }
450 }
451 else
452 {
453 if ((weights!=
NULL) && (*weights!=
NULL)&& ((*weights)[0]!=
NULL))
454 {
457 }
458 }
459
460#ifdef HAVE_PLURAL
462 {
463
465 }
466#endif
467
469 {
476 {
478 setRegularity =
FALSE;
479 }
480 }
481 else
482 {
483 setRegularity =
FALSE;
484 }
485
486
488 ((maxlength==-1) || (syzIndex<=maxlength)))
489
490
491 {
494 {
498 {
500 if (*weights!=
NULL) tempW[
j] = (*weights)[
j];
501
502 }
507 *weights = tempW;
508 }
509
510 if (syzIndex>0)
511 {
514 }
516 if (minim || (syzIndex!=0))
517 {
521 res[syzIndex] = temp;
522 }
523
525 {
530 }
531 else
532 {
534 }
535 completeMinim=(syzIndex!=maxlength) || (maxlength ==-1) || (hom!=
isHomog);
536 syzIndex++;
538
540 {
541 if ((minim)||(syzIndex>1))
543 if (!completeMinim)
544
545 {
547 }
548 }
549
551 {
552
553
554
560 else
562 (*weights)[syzIndex] =
new intvec(
k);
564 {
566 {
572 }
573 }
575 {
579 }
580 }
581 }
582
583
587
589 if (!oldDegBound)
591
592 for (
i=1;
i<=syzIndex;
i++)
593 {
595 {
598 }
599 }
600
601 if (origR != syz_ring)
602 {
604 for (
i=0;
i<=syzIndex;
i++)
605 {
607 }
609 }
612}
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)