 |
My Project
debian-1:4.1.2-p1+ds-2
|
Go to the source code of this file.
|
void | sySchreyersSyzygiesM (polyset F, int Fmax, polyset *Shdl, int *Smax, BOOLEAN noSort) |
|
void | sySchreyersSyzygiesB (polyset F, int Fmax, polyset *Shdl, int *Smax, BOOLEAN noSort) |
|
resolvente | sySchreyerResolvente (ideal arg, int maxlength, int *length, BOOLEAN isMonomial=FALSE, BOOLEAN notReplace=FALSE) |
|
syStrategy | sySchreyer (ideal arg, int maxlength) |
|
resolvente | syResolvente (ideal arg, int maxlength, int *length, intvec ***weights, BOOLEAN minim) |
|
syStrategy | syResolution (ideal arg, int maxlength, intvec *w, BOOLEAN minim) |
|
void | syMinimizeResolvente (resolvente res, int length, int first) |
|
intvec * | syBetti (resolvente res, int length, int *regularity, intvec *weights=NULL, BOOLEAN tomin=TRUE, int *row_shift=NULL) |
|
ideal | syMinBase (ideal arg) |
|
BOOLEAN | syTestOrder (ideal i) |
|
void | syReOrderResolventFB (resolvente res, int length, int initial=1) |
|
resolvente | syLaScala1 (ideal arg, int *length) |
|
syStrategy | syLaScala3 (ideal arg, int *length) |
|
syStrategy | syLaScala (ideal arg, int &maxlength, intvec *weights=NULL) |
|
syStrategy | syHilb (ideal arg, int *length) |
|
syStrategy | syKosz (ideal arg, int *length) |
|
syStrategy | syFrank (const ideal arg, const int length, const char *method, const bool use_cache=true, const bool use_tensor_trick=false) |
|
void | syKillComputation (syStrategy syzstr, ring r=currRing) |
|
intvec * | syBettiOfComputation (syStrategy syzstr, BOOLEAN minim=TRUE, int *row_shift=NULL, intvec *weights=NULL) |
|
int | sySize (syStrategy syzstr) |
|
int | syDim (syStrategy syzstr) |
|
syStrategy | syCopy (syStrategy syzstr) |
|
void | syPrint (syStrategy syzstr, const char *currRingName) |
|
syStrategy | syMinimize (syStrategy syzstr) |
|
void | syKillEmptyEntres (resolvente res, int length) |
|
void | syDeletePair (SObject *so) |
|
void | syInitializePair (SObject *so) |
|
void | syCopyPair (SObject *argso, SObject *imso) |
|
void | syCompactifyPairSet (SSet sPairs, int sPlength, int first) |
|
void | syCompactify1 (SSet sPairs, int *sPlength, int first) |
|
SRes | syInitRes (ideal arg, int *length, intvec *Tl, intvec *cw=NULL) |
|
void | syResetShiftedComponents (syStrategy syzstr, int index, int hilb=0) |
|
void | syEnlargeFields (syStrategy syzstr, int index) |
|
void | syEnterPair (syStrategy syzstr, SObject *so, int *sPlength, int index) |
|
SSet | syChosePairs (syStrategy syzstr, int *index, int *howmuch, int *actdeg) |
|
int | syInitSyzMod (syStrategy syzstr, int index, int init=17) |
|
long | syReorderShiftedComponents (long *sc, int n) |
|
void | syGaussForOne (ideal arg, int gen, int ModComp, int from=-1, int till=0) |
|
void | syEnterPair (SSet sPairs, SObject *so, int *sPlength, int index) |
|
resolvente | syReorder (resolvente res, int length, syStrategy syzstr, BOOLEAN toCopy=TRUE, resolvente totake=NULL) |
|
◆ sSObject
Definition at line 18 of file syz.h.
Data Fields |
int |
ind1 |
|
int |
ind2 |
|
poly |
isNotMinimal |
|
poly |
lcm |
|
int |
length |
|
int |
order |
|
poly |
p |
|
poly |
p1 |
|
poly |
p2 |
|
int |
reference |
|
poly |
syz |
|
int |
syzind |
|
◆ ssyStrategy
Definition at line 36 of file syz.h.
◆ SYZ_SHIFT_BASE
Definition at line 17 of file syz.h.
◆ SYZ_SHIFT_BASE_LOG
Definition at line 16 of file syz.h.
◆ SYZ_SHIFT_MAX_NEW_COMP_ESTIMATE
#define SYZ_SHIFT_MAX_NEW_COMP_ESTIMATE 8 |
Definition at line 14 of file syz.h.
◆ SRes
Definition at line 32 of file syz.h.
◆ SSet
Definition at line 31 of file syz.h.
◆ syStrategy
Definition at line 34 of file syz.h.
◆ 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;
◆ syBettiOfComputation()
Don't change the syzstr???
Definition at line 1754 of file syz1.cc.
1768 if ((*weights)[
i]!=(*(syzstr->
weights[0]))[
i])
1786 if ((fullres==
NULL) && (minres==
NULL))
◆ syChosePairs()
SSet syChosePairs |
( |
syStrategy |
syzstr, |
|
|
int * |
index, |
|
|
int * |
howmuch, |
|
|
int * |
actdeg |
|
) |
| |
◆ syCompactify1()
void syCompactify1 |
( |
SSet |
sPairs, |
|
|
int * |
sPlength, |
|
|
int |
first |
|
) |
| |
Definition at line 131 of file syz1.cc.
136 while (
k+kk<*sPlength)
◆ syCompactifyPairSet()
void syCompactifyPairSet |
( |
SSet |
sPairs, |
|
|
int |
sPlength, |
|
|
int |
first |
|
) |
| |
Definition at line 103 of file syz1.cc.
108 while (
k+kk<sPlength)
◆ syCopy()
◆ syCopyPair()
void syCopyPair |
( |
SObject * |
argso, |
|
|
SObject * |
imso |
|
) |
| |
Definition at line 81 of file syz1.cc.
94 (*argso).isNotMinimal =
NULL;
96 (*argso).reference = -1;
◆ syDeletePair()
void syDeletePair |
( |
SObject * |
so | ) |
|
Definition at line 43 of file syz1.cc.
55 (*so).isNotMinimal =
NULL;
◆ syDim()
Definition at line 1848 of file syz1.cc.
1857 while ((
l>0) && (rP[
l-1]==
NULL))
l--;
1858 if (
l==0)
return -1;
1863 while ((
i<(*syzstr->
Tl)[
l]) &&
1865 (rP[
l][
i].isNotMinimal!=
NULL))
1869 if ((
i<(*syzstr->
Tl)[
l]) &&
1871 (rP[
l][
i].isNotMinimal==
NULL))
◆ syEnlargeFields()
void syEnlargeFields |
( |
syStrategy |
syzstr, |
|
|
int |
index |
|
) |
| |
◆ syEnterPair() [1/2]
void syEnterPair |
( |
SSet |
sPairs, |
|
|
SObject * |
so, |
|
|
int * |
sPlength, |
|
|
int |
index |
|
) |
| |
Definition at line 984 of file syz1.cc.
987 int ll,
k,no=(*so).order,sP=*sPlength,
i;
989 if ((sP==0) || (sPairs[sP-1].order<=no))
1000 if ((sPairs[an].order<=no) && (sPairs[an+1].order>no))
1005 else if ((sPairs[en].order<=no) && (sPairs[en+1].order>no))
1010 else if (sPairs[an].order>no)
1017 PrintS(
"Hier ist was faul!\n");
1022 if (sPairs[
i].order <= no)
1028 for (
k=(*sPlength);
k>ll;
k--)
◆ syEnterPair() [2/2]
void syEnterPair |
( |
syStrategy |
syzstr, |
|
|
SObject * |
so, |
|
|
int * |
sPlength, |
|
|
int |
index |
|
) |
| |
Definition at line 1034 of file syz1.cc.
1039 if (*sPlength>=(*syzstr->
Tl)[
index])
1042 for (ll=0;ll<(*syzstr->
Tl)[
index];ll++)
1053 temp[ll].isNotMinimal = (syzstr->
resPairs[
index])[ll].isNotMinimal;
1055 temp[ll].reference = (syzstr->
resPairs[
index])[ll].reference;
◆ syFrank()
Definition at line 821 of file syz4.cc.
827 if (strcmp(method,
"frame") != 0)
838 set_options(&syzHead, &do_lifting, &single_module, method);
840 single_module, use_cache, use_tensor_trick);
844 (new_length+1)*
sizeof(ideal));
846 if (strcmp(method,
"frame") != 0)
851 result->length = new_length;
852 result->list_length = new_length;
◆ syGaussForOne()
void syGaussForOne |
( |
ideal |
arg, |
|
|
int |
gen, |
|
|
int |
ModComp, |
|
|
int |
from = -1 , |
|
|
int |
till = 0 |
|
) |
| |
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,
◆ syHilb()
Definition at line 949 of file syz2.cc.
954 int maxindex=0,maxdeg=0;
989 if (origR != syzstr->
syRing)
993 if (temp->m[
i]!=
NULL)
996 if (
j<actdeg) actdeg =
j;
1018 while (nextPairs!=
NULL)
1021 Print(
"compute %d Paare im Module %d im Grad %d \n",howmuch,
index,actdeg+
index);
1042 Print(
"Bilde neue Paare in Modul %d!\n",
index);
1048 Print(
"Bilde neue Paare in Modul %d!\n",
index+1);
1057 PrintS(
"minimal resolution:\n");
1058 for (
int ti=1;ti<=*
length;ti++)
1062 PrintS(
"full resolution:\n");
1063 for (
int ti=1;ti<=*
length;ti++)
1069 Print(
"Criterion %d times applied\n",crit);
1070 Print(
"Criterion1 %d times applied\n",crit1);
1071 Print(
"%d superfluous pairs\n",spfl);
1072 Print(
"%d pairs considered\n",cons_pairs);
1073 Print(
"Criterion fails %d times\n",crit_fails);
1083 if (origR != syzstr->
syRing)
◆ syInitializePair()
void syInitializePair |
( |
SObject * |
so | ) |
|
Definition at line 62 of file syz1.cc.
74 (*so).isNotMinimal =
NULL;
◆ syInitRes()
Definition at line 292 of file syz1.cc.
306 (resPairs[0])[
i].syz = (
arg->m[(*iv)[
i]-1]);
322 (resPairs[0])[
i].syz =
arg->m[
j];
324 (resPairs[0])[
i].order = (*iv)[
j];
328 if (iv!=
NULL)
delete iv;
◆ syInitSyzMod()
int syInitSyzMod |
( |
syStrategy |
syzstr, |
|
|
int |
index, |
|
|
int |
init = 17 |
|
) |
| |
Definition at line 1458 of file syz1.cc.
1470 for (
int i=0;
i<init;
i++)
1481 syzstr->
sev[
index] = (
unsigned long*)
omAlloc0(init*
sizeof(
unsigned long));
◆ syKillComputation()
◆ syKillEmptyEntres()
void syKillEmptyEntres |
( |
resolvente |
res, |
|
|
int |
length |
|
) |
| |
Definition at line 2199 of file syz1.cc.
2213 changes =
new intvec(rj+1,1,-1);
2214 while ((rj>0) && (ri->m[rj-1]==
NULL)) rj--;
2220 ri->m[
j] = ri->m[
j+
k];
2221 (*changes)[
j+
k+1] =
j+1;
2229 for (jj=
j;jj<rj;jj++)
◆ syKosz()
Definition at line 1762 of file syz3.cc.
1766 int crit_comp,t_comp,next_deg,old_tl;
1767 ideal temp=
NULL,old_ideal,old_repr;
1782 if (origR!=syzstr->
syRing)
1792 if (temp->m[0]!=
NULL)
1800 if (jj>maxdeg) maxdeg = jj;
1802 while (!
idIs0(temp))
1807 if (temp->m[
j]!=
NULL)
1817 temp1->m[
k] = temp->m[
j];
1828 #ifdef USE_REGULARITY
1829 int last_generator=
IDELEMS(temp)-1;
1830 while ((last_generator>=0) && (temp->m[last_generator]==
NULL))
1840 ideal temp_gens,old_std;
1842 if (rk_arg>1) syzstr->
res[0]->rank = rk_arg;
1848 if (temp->m[
i]!=
NULL)
1850 new_generators->m[0] =
kNF(syzstr->
res[0],
currRing->qideal,temp->m[
i]);
1852 pNorm(new_generators->m[0]);
1854 next_gen =
pCopy(new_generators->m[0]);
1856 if (!
idIs0(new_generators))
1865 old_tl = (*syzstr->
Tl)[0];
1868 t_comp = (*syzstr->
Tl)[
index];
1869 if (
index==0) crit_comp = t_comp;
1879 #ifdef USE_REGULARITY
1880 if ((
index==0) && (!isRegular) && (
i==last_generator))
1912 PrintS(
"\n not regular\n");
1923 new_generators = temp_gens;
1927 if (
idIs0(new_generators))
break;
1930 if (!
idIs0(new_generators))
1934 if (new_generators->m[
j]!=
NULL)
1937 new_generators->m[
j] =
NULL;
1955 Print(
"The %d-th syzygy-module is now:\n",
index);
1997 PrintS(
"Da ist was faul!!!\n");
1998 Print(
"Aber: Regularitaet %d, Grad %ld\n",
2018 if (origR!=syzstr->
syRing)
◆ syLaScala()
Definition at line 2558 of file syz1.cc.
2587 syzstr->
length = maxlength;
2600 for (
i=0;
i<=
arg->rank;
i++)
2607 syzstr->
Tl =
new intvec(maxlength);
2612 if (temp->m[
i]!=
NULL)
2615 if (
j<actdeg) actdeg =
j;
2635 syzstr->
sev = (
unsigned long **)
omAlloc0((maxlength+1)*
sizeof(
unsigned long *));
2645 while (nextPairs!=
NULL)
2667 if (
index<(maxlength-1))
2677 if (origR != syzstr->
syRing)
◆ syLaScala1()
◆ syLaScala3()
Definition at line 2432 of file syz1.cc.
2463 for (
i=0;
i<=
arg->rank;
i++)
2475 if (temp->m[
i]!=
NULL)
2478 if (
j<actdeg) actdeg =
j;
2502 while (nextPairs!=
NULL)
2535 if (origR != syzstr->
syRing)
◆ syMinBase()
ideal syMinBase |
( |
ideal |
arg | ) |
|
Definition at line 1004 of file syz.cc.
1019 if ((leng>=1) && (*(weights+1)!=
NULL))
1021 delete *(weights+1);
◆ syMinimize()
◆ syMinimizeResolvente()
void syMinimizeResolvente |
( |
resolvente |
res, |
|
|
int |
length, |
|
|
int |
first |
|
) |
| |
Definition at line 355 of file syz.cc.
360 if (syzIndex<1) syzIndex=1;
◆ syPrint()
Definition at line 1933 of file syz1.cc.
1941 PrintS(
"No resolution defined\n");
1947 if (resolution==
NULL)
1954 (*resolution)[0] = syzstr->
res[1]->rank;
1959 while ((
j<(*syzstr->
Tl)[
k]) &&
1962 if (rP[
k][
j].isNotMinimal==
NULL)
1963 ((*resolution)[
k+1])++;
1983 (*resolution)[
k+1] =
idElem(rr[
k]);
1994 if ((
k>=resolution->
length()) || ((*resolution)[
k]==0))
1996 Print(
"%d",(*resolution)[
k]);
2004 if ((
k>=resolution->
length()) || ((*resolution)[
k]==0))
2007 if (((
k+1)>=resolution->
length()) || ((*resolution)[(
k+1)]==0))
2018 if ((
k>=resolution->
length()) || ((*resolution)[
k]==0))
2028 PrintS(
"resolution not minimized yet\n");
◆ syReorder()
Definition at line 1640 of file syz1.cc.
1648 ring origR=syzstr->
syRing;
1661 ri1 = totake[
i-1]->m;
1707 fullres[
i-1]->m[
j] = q;
1732 fullres[
i-1] =
res[
i];
◆ syReOrderResolventFB()
void syReOrderResolventFB |
( |
resolvente |
res, |
|
|
int |
length, |
|
|
int |
initial = 1 |
|
) |
| |
Definition at line 739 of file syz0.cc.
745 while ((syzIndex!=0) && (
res[syzIndex]==
NULL)) syzIndex--;
750 p =
res[syzIndex]->m[
i];
763 PrintS(
"error in the resolvent\n");
◆ syReorderShiftedComponents()
long syReorderShiftedComponents |
( |
long * |
sc, |
|
|
int |
n |
|
) |
| |
Definition at line 333 of file syz1.cc.
338 long new_comps = 0, new_space,
max;
343 if (sc[
i-1] + 1 < sc[
i]) holes++;
361 assume(new_space < SYZ_SHIFT_BASE && new_space >= 4);
363 long* tc = (
long*)
omAlloc(n*
sizeof(
long));
368 if (sc[
i-1] + 1 < sc[
i])
370 tc[
i] = tc[
i-1] + new_space;
◆ syResetShiftedComponents()
void syResetShiftedComponents |
( |
syStrategy |
syzstr, |
|
|
int |
index, |
|
|
int |
hilb = 0 |
|
) |
| |
◆ 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++)
◆ sySchreyer()
syStrategy sySchreyer |
( |
ideal |
arg, |
|
|
int |
maxlength |
|
) |
| |
Definition at line 1017 of file syz0.cc.
1028 for (
int i=rl -1;
i>=0;
i--)
1038 for (
int i=0;
i<rl;
i++)
1064 if ((rl>maxlength) && (
result->fullres[rl-1]!=
NULL))
◆ sySchreyerResolvente()
Definition at line 854 of file syz0.cc.
859 int i,syzIndex = 0,
j=0;
868 WerrorS(
"sres only implemented for modules with ordering ..,c or ..,C");
875 while ((!
idIs0(
res[syzIndex])) && ((maxlength==-1) || (syzIndex<maxlength)))
967 if ( origR!=syRing && syRing !=
NULL)
971 while ((syzIndex < *
length) && (
res[syzIndex]))
975 if (
res[syzIndex]->
m[
i])
988 while ((syzIndex < *
length) && (
res[syzIndex]))
992 if (
res[syzIndex]->
m[
i])
1013 if (modcomp!=
NULL)
delete modcomp;
◆ sySchreyersSyzygiesB()
◆ sySchreyersSyzygiesM()
◆ sySize()
◆ syTestOrder()
◆ currcomponents
◆ currShiftedComponents
BOOLEAN rHasGlobalOrdering(const ring r)
ring rAssure_SyzComp_CompLastBlock(const ring r)
makes sure that c/C ordering is last ordering and SyzIndex is first
#define SYZ_SHIFT_MAX_NEW_COMP_ESTIMATE
BOOLEAN rRing_has_CompLastBlock(ring r)
EXTERN_VAR omBin char_ptr_bin
int idElem(const ideal F)
count non-zero elements
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 ...
SSet syChosePairs(syStrategy syzstr, int *index, int *howmuch, int *actdeg)
void syMinimizeResolvente(resolvente res, int length, int first)
ring rAssure_SyzComp(const ring r, BOOLEAN complete)
#define pGetComp(p)
Component.
#define TEST_OPT_NOTREGULARITY
static long p_GetExp(const poly p, const unsigned long iBitmask, const int VarOffset)
get a single variable exponent @Note: the integer VarOffset encodes:
void pNorm(poly p, const ring R=currRing)
static int syLengthInt(int i)
#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)
static ideal sySchreyersSyzygiesFB(ideal arg, intvec **modcomp, ideal mW, BOOLEAN redTail=TRUE)
void rChangeCurrRing(ring r)
#define TEST_OPT_DEGBOUND
EXTERN_VAR int * currcomponents
#define pGetExp(p, i)
Exponent.
ideal idrMoveR_NoSort(ideal &id, ring src_r, ring dest_r)
void pEnlargeSet(poly **p, int l, int increment)
static void syRedGenerOfCurrDeg(syStrategy syzstr, int deg, int index)
static resolvente syReadOutMinimalRes(syStrategy syzstr, BOOLEAN computeStd=FALSE)
#define pDeleteComp(p, k)
intvec * syBetti(resolvente res, int length, int *regularity, intvec *weights, BOOLEAN tomin, int *row_shift)
int syInitSyzMod(syStrategy syzstr, int index, int init=17)
static BOOLEAN length(leftv result, leftv arg)
ideal kInterRedOld(ideal F, ideal Q)
static void set_options(syzHeadFunction **syzHead_ptr, bool *do_lifting_ptr, bool *single_module_ptr, const char *method)
static void pResetSetm(poly p)
void id_Shift(ideal M, int s, const ring r)
poly initial(const poly p, const ring r, const gfan::ZVector &w)
Returns the initial form of p with respect to w.
BOOLEAN idTestHomModule(ideal m, ideal Q, intvec *w)
BOOLEAN idIs0(ideal h)
returns true if h is the zero ideal
SSet syChosePairs(syStrategy syzstr, int *index, int *howmuch, int *actdeg)
VAR long * currShiftedComponents
static intvec * syPrepareModComp(ideal arg, intvec **w)
void syEnterPair(SSet sPairs, SObject *so, int *sPlength, int)
void syCompactifyPairSet(SSet sPairs, int sPlength, int first)
SRes syInitRes(ideal arg, int *length, intvec *Tl, intvec *cw=NULL)
void syKillEmptyEntres(resolvente res, int length)
static long pTotaldegree(poly p)
static void syMinStep(ideal mod, ideal &syz, BOOLEAN final=FALSE, ideal up=NULL, tHomog h=isNotHomog)
static void syPrintEmptySpaces(int i)
int rGetMaxSyzComp(int i, const ring r)
return the max-comonent wchich has syzIndex i Assume: i<= syzIndex_limit
void rGetSComps(int **currComponents, long **currShiftedComponents, int *length, ring r)
poly prMoveR(poly &p, ring src_r, ring dest_r)
static BOOLEAN rIsPluralRing(const ring r)
we must always have this test!
static int rGetCurrSyzLimit(const ring r)
static void syRedNextPairs_Hilb(SSet nextPairs, syStrategy syzstr, int howmuch, int index, int actord, int *toSub, int *maxindex, int *maxdeg)
resolvente syResolvente(ideal arg, int maxlength, int *length, intvec ***weights, BOOLEAN minim)
EXTERN_VAR long * currShiftedComponents
intvec * ivCopy(const intvec *o)
BOOLEAN rHasLocalOrMixedOrdering(const ring r)
void id_Delete(ideal *h, ring r)
deletes an ideal/module/matrix
ideal idrMoveR(ideal &id, ring src_r, ring dest_r)
void kBucketDestroy(kBucket_pt *bucket_pt)
static void insert_ext_induced_LTs(const resolvente res, const int length, const bool single_module)
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 idShow(const ideal id, const ring lmRing, const ring tailRing, const int debugPrint)
static void syPrintEmptySpaces1(int i)
static int computeResolution(resolvente res, const int max_index, syzHeadFunction *syzHead, const bool do_lifting, const bool single_module, const bool use_cache, const bool use_tensor_trick)
void PrintS(const char *s)
#define omMemcpyW(p1, p2, l)
#define omFreeSize(addr, size)
void syInitializePair(SObject *so)
ring rAssure_dp_C(const ring r)
void syCopyPair(SObject *argso, SObject *imso)
void syCompactifyPairSet(SSet sPairs, int sPlength, int first)
#define TEST_OPT_NO_SYZ_MINIM
ring rAssure_dp_S(const ring r)
void syReorder_Kosz(syStrategy syzstr)
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)
static void syInitSort(ideal arg, intvec **modcomp)
ring rAssure_C_dp(const ring r)
static BOOLEAN syIsRegular(ideal old_ideal, ideal new_ideal, int deg)
ideal idMinEmbedding(ideal arg, BOOLEAN inPlace, intvec **w)
static ideal sySchreyersSyzygiesFM(ideal arg, intvec **modcomp)
int sySize(syStrategy syzstr)
resolvente sySchreyerResolvente(ideal arg, int maxlength, int *length, BOOLEAN isMonomial, BOOLEAN)
static int max(int a, int b)
resolvente syReorder(resolvente res, int length, syStrategy syzstr, BOOLEAN toCopy, resolvente totake)
bool ncExtensions(int iMask)
poly p_Cleardenom(poly p, const ring r)
static void syMinStep1(resolvente res, int length)
#define pSortCompCorrect(p)
Assume: If considerd only as poly in any component of p (say, monomials of other components of p are ...
static void syRedGenerOfCurrDeg_Hilb(syStrategy syzstr, int deg, int *maxindex, int *maxdeg)
poly kNF(ideal F, ideal Q, poly p, int syzComp, int lazyReduce)
static void syCreateNewPairs_Hilb(syStrategy syzstr, int index, int actdeg)
static SSet syChosePairsPutIn(syStrategy syzstr, int *index, int *howmuch, int *actdeg, int an, int en)
SRes syInitRes(ideal arg, int *length, intvec *Tl, intvec *cw)
void rDelete(ring r)
unconditionally deletes fields in r
#define IMATELEM(M, I, J)
static void p_Delete(poly *p, const ring r)
static void syRedNextPairs(SSet nextPairs, syStrategy syzstr, int howmuch, int index)
static int si_max(const int a, const int b)
static ideal syAppendSyz(ideal new_generators, syStrategy syzstr, int index, int crit_comp, resolvente totake)
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)
static void syReOrdResult_Hilb(syStrategy syzstr, int maxindex, int maxdeg)
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)
BOOLEAN syTestOrder(ideal M)
int lcm(unsigned long *l, unsigned long *a, unsigned long *b, unsigned long p, int dega, int degb)
ring rAssure_CompLastBlock(ring r, BOOLEAN complete)
makes sure that c/C ordering is last ordering
#define omRealloc0Size(addr, o_size, size)
static int syChMin(intvec *iv)
static void syCreateNewPairs(syStrategy syzstr, int index, int newEl)
poly prHeadR(poly p, ring src_r, ring dest_r, prCopyProc_t prproc)
void rChangeSComps(int *currComponents, long *currShiftedComponents, int length, ring r)
kBucket_pt kBucketCreate(const ring bucket_ring)
Creation/Destruction of buckets.
VAR ring currRing
Widely used global variable which specifies the current polynomial ring for Singular interpreter and ...
poly syzHeadFunction(ideal, int, int)
#define pCopy(p)
return a copy of the poly
#define SI_RESTORE_OPT1(A)
ideal id_Copy(ideal h1, const ring r)
copy an ideal
resolvente sySchreyerResolvente(ideal arg, int maxlength, int *length, BOOLEAN isMonomial=FALSE, BOOLEAN notReplace=FALSE)
static void syCreateRegularExtension(syStrategy syzstr, ideal old_ideal, ideal old_repr, int old_tl, poly next_generator, resolvente totake)
#define pHead(p)
returns newly allocated copy of Lm(p), coef is copied, next=NULL, p might be NULL
static number & pGetCoeff(poly p)
return an alias to the leading coefficient of p assumes that p != NULL NOTE: not copy
long ** ShiftedComponents
static bool rIsSCA(const ring r)
int syInitSyzMod(syStrategy syzstr, int index, int init)
static long p_FDeg(const poly p, const ring r)
ideal id_Head(ideal h, const ring r)
returns the ideals of initial terms
static int index(p_Length length, p_Ord ord)
void syReOrderResolventFB(resolvente res, int length, int initial)
static intvec * idSort(ideal id, BOOLEAN nolex=TRUE)
poly prCopyR(poly p, ring src_r, ring dest_r)
ideal idrCopyR(ideal id, ring src_r, ring dest_r)
void sySetNewHilb(syStrategy syzstr, int toSub, int index, int actord)
#define omReallocSize(addr, o_size, size)