 |
My Project
debian-1:4.1.2-p1+ds-2
|
Go to the source code of this file.
|
static intvec * | syPrepareModComp (ideal arg, intvec **w) |
|
static void | syDeleteAbove (ideal up, int k) |
|
static void | syMinStep (ideal mod, ideal &syz, BOOLEAN final=FALSE, ideal up=NULL, tHomog h=isNotHomog) |
|
void | syGaussForOne (ideal syz, int elnum, int ModComp, int from, int till) |
|
static void | syDeleteAbove1 (ideal up, int k) |
|
static void | syMinStep1 (resolvente res, int length) |
|
void | syMinimizeResolvente (resolvente res, int length, int first) |
|
resolvente | syResolvente (ideal arg, int maxlength, int *length, intvec ***weights, BOOLEAN minim) |
|
syStrategy | syResolution (ideal arg, int maxlength, intvec *w, BOOLEAN minim) |
|
static poly | sypCopyConstant (poly inp) |
|
int | syDetect (ideal id, int index, BOOLEAN homog, int *degrees, int *tocancel) |
|
void | syDetect (ideal id, int index, int rsmin, BOOLEAN homog, intvec *degrees, intvec *tocancel) |
|
intvec * | syBetti (resolvente res, int length, int *regularity, intvec *weights, BOOLEAN tomin, int *row_shift) |
|
ideal | syMinBase (ideal arg) |
|
◆ syBetti()
Definition at line 770 of file syz.cc.
775 int i,
j=0,
k=0,
l,rows,cols,mr;
776 int *temp1,*temp2,*temp3;
812 WarnS(
"betti-command: Input is not homogeneous!");
816 if (weights==
NULL) weights=
w;
819 while ((r0_len>0) && (
res[0]->
m[r0_len-1]==
NULL)) r0_len--;
830 temp1 = (
int*)
omAlloc0((
l+1)*
sizeof(int));
831 temp2 = (
int*)
omAlloc((
l+1)*
sizeof(int));
835 for (
i=0;
i<cols-1;
i++)
838 memset(temp2,0,(
l+1)*
sizeof(
int));
848 WerrorS(
"input not a resolution");
854 if (temp2[
j+1]-
i>rows) rows = temp2[
j+1]-
i;
855 if (temp2[
j+1]-
i<mr) mr = temp2[
j+1]-
i;
868 if (rows <(*weights)[
j]+1) rows=(-mr)+(*weights)[
j]+1;
884 (*result)[(-mr)*cols] = rkl;
885 if ((!
idIs0(
res[0])) && ((*result)[(-mr)*cols]==0))
886 (*
result)[(-mr)*cols] = 1;
888 tocancel = (
int*)
omAlloc0((rows+1)*
sizeof(int));
889 memset(temp1,0,(
l+1)*
sizeof(
int));
892 memset(temp2,0,
l*
sizeof(
int));
896 memset(temp2,0,
l*
sizeof(
int));
902 for(
j=0;
j<=rows+mr;
j++)
908 for (
i=0;
i<cols-1;
i++)
911 memset(temp2,0,
l*
sizeof(
int));
929 for (
j=mr;
j<rows+mr;
j++)
936 memset(tocancel,0,(rows+1)*
sizeof(
int));
948 for (
j=0;
j<=rows;
j++)
960 if ((tomin) && (mr<0))
962 for (
j=1;
j<=rows+mr+1;
j++)
964 for (
k=1;
k<=cols;
k++)
969 for (
j=rows+mr+1;
j<=rows+1;
j++)
971 for (
k=1;
k<=cols;
k++)
989 for (
i=0;
i<exactresult->
rows();
i++)
991 for (
j=0;
j<exactresult->
cols();
j++)
996 if (row_shift!=
NULL) *row_shift = mr;
◆ syDeleteAbove()
static void syDeleteAbove |
( |
ideal |
up, |
|
|
int |
k |
|
) |
| |
|
static |
◆ syDeleteAbove1()
static void syDeleteAbove1 |
( |
ideal |
up, |
|
|
int |
k |
|
) |
| |
|
static |
◆ syDetect() [1/2]
int syDetect |
( |
ideal |
id, |
|
|
int |
index, |
|
|
BOOLEAN |
homog, |
|
|
int * |
degrees, |
|
|
int * |
tocancel |
|
) |
| |
Definition at line 701 of file syz.cc.
703 int i,
j,
k, subFromRank=0;
706 if (
idIs0(
id))
return 0;
713 while ((
i>0) && (temp->m[
i-1]==
NULL))
i--;
720 while ((
j<
i) && (temp->m[
j]==
NULL))
j++;
728 if ((
k>=0) && (
index==0)) subFromRank++;
736 while ((
j<
i) && (temp->m[
j]==
NULL))
j++;
◆ syDetect() [2/2]
void syDetect |
( |
ideal |
id, |
|
|
int |
index, |
|
|
int |
rsmin, |
|
|
BOOLEAN |
homog, |
|
|
intvec * |
degrees, |
|
|
intvec * |
tocancel |
|
) |
| |
Definition at line 742 of file syz.cc.
757 (*tocancel)[
i-1] = tocan[
i-1];
◆ syGaussForOne()
void syGaussForOne |
( |
ideal |
syz, |
|
|
int |
elnum, |
|
|
int |
ModComp, |
|
|
int |
from, |
|
|
int |
till |
|
) |
| |
Definition at line 218 of file syz.cc.
222 poly actWith=syz->m[elnum];
224 if (from<0) from = 0;
226 syz->m[elnum] =
NULL;
232 poly tmp=syz->m[from];
237 syz->m[from] =
pSub(tmp,
◆ syMinBase()
ideal syMinBase |
( |
ideal |
arg | ) |
|
Definition at line 1004 of file syz.cc.
1019 if ((leng>=1) && (*(weights+1)!=
NULL))
1021 delete *(weights+1);
◆ syMinimizeResolvente()
void syMinimizeResolvente |
( |
resolvente |
res, |
|
|
int |
length, |
|
|
int |
first |
|
) |
| |
Definition at line 355 of file syz.cc.
360 if (syzIndex<1) syzIndex=1;
◆ syMinStep()
Definition at line 82 of file syz.cc.
85 poly Unit1,Unit2,actWith;
86 int len,
i,
j,ModComp,
m,
k,
l;
100 while ((
j>0) && (!syz->m[
j-1]))
j--;
109 for (
l=
k;
l<
j-1;
l++) syz->m[
l] = syz->m[
l+1];
125 while ((
j>0) && (syz->m[
j-1]==
NULL))
j--;
127 if (bHasGlobalOrdering)
129 while ((
i<
j) && (!existsUnit))
145 if ((len==0) ||((
l>0) && (
l<len)))
154 if (len>0) existsUnit =
TRUE;
166 for (
k=
i;
k<
j-1;
k++) syz->m[
k] = syz->m[
k+1];
184 syz->m[
k] =
pSub(syz->m[
k],
189 syz->m[
l] = syz->m[
l+1];
201 pDelete(&(
mod->m[ModComp-1 - curr_syz_limit]));
◆ syMinStep1()
static void syMinStep1 |
( |
resolvente |
res, |
|
|
int |
length |
|
) |
| |
|
static |
Definition at line 289 of file syz.cc.
306 if (reddeg0->m[
i]!=
NULL)
311 (*have_del)[
j-1] = 1;
319 j = to_del->length();
322 if ((*to_del)[
j-1]==1)
345 if (to_del!=
NULL)
delete to_del;
352 if (to_del!=
NULL)
delete to_del;
◆ sypCopyConstant()
static poly sypCopyConstant |
( |
poly |
inp | ) |
|
|
static |
◆ syPrepareModComp()
Definition at line 25 of file syz.cc.
32 int maxxx = (*w)->
length();
61 (**w)[
i+1] = (*w1)[
i+maxxx];
◆ syResolution()
Definition at line 613 of file syz.cc.
617 const ideal idSaveCurrRingQuotient =
currRing->qideal;
670 currRing->qideal = idSaveCurrRingQuotient;
◆ syResolvente()
Definition at line 389 of file syz.cc.
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))
466 #endif // HAVE_PLURAL
478 setRegularity =
FALSE;
483 setRegularity =
FALSE;
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))
562 (*weights)[syzIndex] =
new intvec(
k);
592 for (
i=1;
i<=syzIndex;
i++)
600 if (origR != syz_ring)
603 for (
i=0;
i<=syzIndex;
i++)
BOOLEAN rHasGlobalOrdering(const ring r)
EXTERN_VAR omBin char_ptr_bin
void pTakeOutComp(poly *p, long comp, poly *q, int *lq, const ring R=currRing)
Splits *p into two polys: *q which consists of all monoms with component == comp and *p of all other ...
ring rAssure_SyzComp(const ring r, BOOLEAN complete)
#define pGetComp(p)
Component.
#define TEST_OPT_NOTREGULARITY
#define idDelete(H)
delete an ideal
ideal idrCopyR_NoSort(ideal id, ring src_r, ring dest_r)
int syDetect(ideal id, int index, BOOLEAN homog, int *degrees, int *tocancel)
void rChangeCurrRing(ring r)
#define TEST_OPT_DEGBOUND
ideal idrMoveR_NoSort(ideal &id, ring src_r, ring dest_r)
#define pDeleteComp(p, k)
static BOOLEAN length(leftv result, leftv arg)
ideal kInterRedOld(ideal F, ideal Q)
static void syDeleteAbove1(ideal up, int k)
void id_Shift(ideal M, int s, const ring r)
BOOLEAN idTestHomModule(ideal m, ideal Q, intvec *w)
BOOLEAN idIs0(ideal h)
returns true if h is the zero ideal
static intvec * syPrepareModComp(ideal arg, intvec **w)
#define pLmIsConstantComp(p)
like above, except that p must be != NULL
static long pTotaldegree(poly p)
static void syMinStep(ideal mod, ideal &syz, BOOLEAN final=FALSE, ideal up=NULL, tHomog h=isNotHomog)
int rGetMaxSyzComp(int i, const ring r)
return the max-comonent wchich has syzIndex i Assume: i<= syzIndex_limit
static BOOLEAN rIsPluralRing(const ring r)
we must always have this test!
static int rGetCurrSyzLimit(const ring r)
resolvente syResolvente(ideal arg, int maxlength, int *length, intvec ***weights, BOOLEAN minim)
intvec * ivCopy(const intvec *o)
void id_Delete(ideal *h, ring r)
deletes an ideal/module/matrix
long id_RankFreeModule(ideal s, ring lmRing, ring tailRing)
return the maximal component number found in any polynomial in s
void show(int mat=0, int spaces=0) const
void PrintS(const char *s)
#define omFreeSize(addr, size)
#define TEST_OPT_NO_SYZ_MINIM
static poly sypCopyConstant(poly inp)
static short scaFirstAltVar(ring r)
void idSkipZeroes(ideal ide)
gives an ideal/module the minimal possible size
static BOOLEAN rField_is_Ring(const ring r)
ideal idMinEmbedding(ideal arg, BOOLEAN inPlace, intvec **w)
ideal id_Jet(const ideal i, int d, const ring R)
bool ncExtensions(int iMask)
poly p_Cleardenom(poly p, const ring r)
static void syMinStep1(resolvente res, int length)
void syGaussForOne(ideal syz, int elnum, int ModComp, int from, int till)
void rDelete(ring r)
unconditionally deletes fields in r
#define IMATELEM(M, I, J)
static int si_max(const int a, const int b)
void rSetSyzComp(int k, const ring r)
static short scaLastAltVar(ring r)
ideal idInit(int idsize, int rank)
initialise an ideal / module
static BOOLEAN idHomModule(ideal m, ideal Q, intvec **w)
ideal id_KillSquares(const ideal id, const short iFirstAltVar, const short iLastAltVar, const ring r, const bool bSkipZeroes)
void WerrorS(const char *s)
static BOOLEAN rField_has_simple_inverse(const ring r)
#define pVectorHasUnitB(p, k)
#define pLmDelete(p)
assume p != NULL, deletes Lm(p)->coef and Lm(p)
void p_SetModDeg(intvec *w, ring r)
ideal SCAQuotient(const ring r)
ideal idSyzygies(ideal h1, tHomog h, intvec **w, BOOLEAN setSyzComp, BOOLEAN setRegularity, int *deg, GbVariant alg)
VAR ring currRing
Widely used global variable which specifies the current polynomial ring for Singular interpreter and ...
#define pCopy(p)
return a copy of the poly
#define SI_RESTORE_OPT1(A)
#define pHead(p)
returns newly allocated copy of Lm(p), coef is copied, next=NULL, p might be NULL
#define pVectorHasUnit(p, k, l)
static bool rIsSCA(const ring r)
static long p_FDeg(const poly p, const ring r)
static int index(p_Length length, p_Ord ord)
static void syDeleteAbove(ideal up, int k)
void syKillEmptyEntres(resolvente res, int length)