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)
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)
ring currRing
Widely used global variable which specifies the current polynomial ring for Singular interpreter and ...
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)