404 if (maxlength!=-1) *
length = maxlength+1;
406 if ((wlength!=0) && (*
length!=wlength))
409 wtmp[0]=(*weights)[0];
420 if (syz_ring != origR)
431 if ((weights!=
NULL) && (*weights!=
NULL)&& ((*weights)[0]!=
NULL))
435 WarnS(
"wrong weights given(1):"); (*weights)[0]->show();
PrintLn();
442 if ((weights==
NULL) || (*weights==
NULL) || ((*weights)[0]==
NULL))
453 if ((weights!=
NULL) && (*weights!=
NULL)&& ((*weights)[0]!=
NULL))
455 w =
ivCopy((*weights)[0]);
466 #endif // HAVE_PLURAL 478 setRegularity =
FALSE;
483 setRegularity =
FALSE;
487 while ((res[syzIndex]!=
NULL) && (!
idIs0(res[syzIndex])) &&
488 ((maxlength==-1) || (syzIndex<=maxlength)))
500 if (*weights!=
NULL) tempW[
j] = (*weights)[
j];
516 if (minim || (syzIndex!=0))
521 res[syzIndex] = temp;
535 completeMinim=(syzIndex!=maxlength) || (maxlength ==-1) || (hom!=
isHomog);
541 if ((minim)||(syzIndex>1))
542 syMinStep(res[syzIndex-1],res[syzIndex],!completeMinim,
NULL,hom);
562 (*weights)[syzIndex] =
new intvec(k);
565 if (res[syzIndex-1]->
m[i]!=
NULL)
570 += (*w)[
pGetComp(res[syzIndex-1]->
m[i])-1];
574 for (i=k;i<k+
IDELEMS(res[syzIndex]);i++)
576 if (res[syzIndex]->
m[i-k]!=
NULL)
578 +(*w)[
pGetComp(res[syzIndex]->
m[i-k])-1];
584 if ((syzIndex!=0) && (res[syzIndex]!=
NULL) && (
idIs0(res[syzIndex])))
586 if (w !=
NULL)
delete w;
592 for (i=1; i<=syzIndex; i++)
600 if (origR != syz_ring)
603 for (i=0; i<=syzIndex; i++)
#define TEST_OPT_NOTREGULARITY
void resize(int new_length)
#define TEST_OPT_DEGBOUND
#define idDelete(H)
delete an ideal
static void syMinStep(ideal mod, ideal &syz, BOOLEAN final=FALSE, ideal up=NULL, tHomog h=isNotHomog)
BOOLEAN idTestHomModule(ideal m, ideal Q, intvec *w)
static int rGetCurrSyzLimit(const ring r)
#define omFreeSize(addr, size)
intvec * ivCopy(const intvec *o)
#define pGetComp(p)
Component.
static BOOLEAN idHomModule(ideal m, ideal Q, intvec **w)
VAR ring currRing
Widely used global variable which specifies the current polynomial ring for Singular interpreter and ...
void id_Shift(ideal M, int s, const ring r)
long id_RankFreeModule(ideal s, ring lmRing, ring tailRing)
return the maximal component number found in any polynomial in s
#define TEST_OPT_NO_SYZ_MINIM
static long pTotaldegree(poly p)
static BOOLEAN rIsPluralRing(const ring r)
we must always have this test!
int rGetMaxSyzComp(int i, const ring r)
return the max-comonent wchich has syzIndex i Assume: i<= syzIndex_limit
ring rAssure_SyzComp(const ring r, BOOLEAN complete)
static long p_FDeg(const poly p, const ring r)
static int si_max(const int a, const int b)
ideal kInterRedOld(ideal F, ideal Q)
void idSkipZeroes(ideal ide)
gives an ideal/module the minimal possible size
void rSetSyzComp(int k, const ring r)
void rChangeCurrRing(ring r)
ideal idSyzygies(ideal h1, tHomog h, intvec **w, BOOLEAN setSyzComp, BOOLEAN setRegularity, int *deg, GbVariant alg)
static BOOLEAN rField_is_Ring(const ring r)
void rDelete(ring r)
unconditionally deletes fields in r
void show(int mat=0, int spaces=0) const
static BOOLEAN length(leftv result, leftv arg)
static bool rIsSCA(const ring r)
BOOLEAN idIs0(ideal h)
returns true if h is the zero ideal
#define SI_RESTORE_OPT1(A)
ideal idrCopyR_NoSort(ideal id, ring src_r, ring dest_r)
static intvec * syPrepareModComp(ideal arg, intvec **w)
ideal idrMoveR_NoSort(ideal &id, ring src_r, ring dest_r)