 |
My Project
UNKNOWN_GIT_VERSION
|
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 771 of file syz.cc.
776 int i,
j=0,
k=0,
l,rows,cols,mr;
777 int *temp1,*temp2,*temp3;
813 WarnS(
"betti-command: Input is not homogeneous!");
817 if (weights==
NULL) weights=
w;
820 while ((r0_len>0) && (
res[0]->
m[r0_len-1]==
NULL)) r0_len--;
831 temp1 = (
int*)
omAlloc0((
l+1)*
sizeof(int));
832 temp2 = (
int*)
omAlloc((
l+1)*
sizeof(int));
836 for (
i=0;
i<cols-1;
i++)
839 memset(temp2,0,(
l+1)*
sizeof(
int));
849 WerrorS(
"input not a resolution");
855 if (temp2[
j+1]-
i>rows) rows = temp2[
j+1]-
i;
856 if (temp2[
j+1]-
i<mr) mr = temp2[
j+1]-
i;
869 if (rows <(*weights)[
j]+1) rows=(-mr)+(*weights)[
j]+1;
885 (*result)[(-mr)*cols] = rkl;
886 if ((!
idIs0(
res[0])) && ((*result)[(-mr)*cols]==0))
887 (*
result)[(-mr)*cols] = 1;
889 tocancel = (
int*)
omAlloc0((rows+1)*
sizeof(int));
890 memset(temp1,0,(
l+1)*
sizeof(
int));
893 memset(temp2,0,
l*
sizeof(
int));
897 memset(temp2,0,
l*
sizeof(
int));
903 for(
j=0;
j<=rows+mr;
j++)
909 for (
i=0;
i<cols-1;
i++)
912 memset(temp2,0,
l*
sizeof(
int));
930 for (
j=mr;
j<rows+mr;
j++)
937 memset(tocancel,0,(rows+1)*
sizeof(
int));
949 for (
j=0;
j<=rows;
j++)
961 if ((tomin) && (mr<0))
963 for (
j=1;
j<=rows+mr+1;
j++)
965 for (
k=1;
k<=cols;
k++)
970 for (
j=rows+mr+1;
j<=rows+1;
j++)
972 for (
k=1;
k<=cols;
k++)
990 for (
i=0;
i<exactresult->
rows();
i++)
992 for (
j=0;
j<exactresult->
cols();
j++)
997 if (row_shift!=
NULL) *row_shift = mr;
◆ syBettiOfComputation()
Don't change the syzstr???
Definition at line 1755 of file syz1.cc.
1769 if ((*weights)[
i]!=(*(syzstr->
weights[0]))[
i])
1787 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 132 of file syz1.cc.
137 while (
k+kk<*sPlength)
◆ syCompactifyPairSet()
void syCompactifyPairSet |
( |
SSet |
sPairs, |
|
|
int |
sPlength, |
|
|
int |
first |
|
) |
| |
Definition at line 104 of file syz1.cc.
109 while (
k+kk<sPlength)
◆ syCopy()
◆ syCopyPair()
void syCopyPair |
( |
SObject * |
argso, |
|
|
SObject * |
imso |
|
) |
| |
Definition at line 82 of file syz1.cc.
95 (*argso).isNotMinimal =
NULL;
97 (*argso).reference = -1;
◆ syDeletePair()
void syDeletePair |
( |
SObject * |
so | ) |
|
Definition at line 44 of file syz1.cc.
56 (*so).isNotMinimal =
NULL;
◆ syDim()
Definition at line 1849 of file syz1.cc.
1858 while ((
l>0) && (rP[
l-1]==
NULL))
l--;
1859 if (
l==0)
return -1;
1864 while ((
i<(*syzstr->
Tl)[
l]) &&
1866 (rP[
l][
i].isNotMinimal!=
NULL))
1870 if ((
i<(*syzstr->
Tl)[
l]) &&
1872 (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 985 of file syz1.cc.
988 int ll,
k,no=(*so).order,sP=*sPlength,
i;
990 if ((sP==0) || (sPairs[sP-1].order<=no))
1001 if ((sPairs[an].order<=no) && (sPairs[an+1].order>no))
1006 else if ((sPairs[en].order<=no) && (sPairs[en+1].order>no))
1011 else if (sPairs[an].order>no)
1018 PrintS(
"Hier ist was faul!\n");
1023 if (sPairs[
i].order <= no)
1029 for (
k=(*sPlength);
k>ll;
k--)
◆ syEnterPair() [2/2]
void syEnterPair |
( |
syStrategy |
syzstr, |
|
|
SObject * |
so, |
|
|
int * |
sPlength, |
|
|
int |
index |
|
) |
| |
Definition at line 1035 of file syz1.cc.
1040 if (*sPlength>=(*syzstr->
Tl)[
index])
1043 for (ll=0;ll<(*syzstr->
Tl)[
index];ll++)
1054 temp[ll].isNotMinimal = (syzstr->
resPairs[
index])[ll].isNotMinimal;
1056 temp[ll].reference = (syzstr->
resPairs[
index])[ll].reference;
◆ syFrank()
Definition at line 822 of file syz4.cc.
828 if (strcmp(method,
"frame") != 0)
839 set_options(&syzHead, &do_lifting, &single_module, method);
841 single_module, use_cache, use_tensor_trick);
845 (new_length+1)*
sizeof(ideal));
847 if (strcmp(method,
"frame") != 0)
852 result->length = new_length;
853 result->list_length = new_length;
◆ syGaussForOne()
void syGaussForOne |
( |
ideal |
arg, |
|
|
int |
gen, |
|
|
int |
ModComp, |
|
|
int |
from = -1 , |
|
|
int |
till = 0 |
|
) |
| |
Definition at line 219 of file syz.cc.
223 poly actWith=syz->m[elnum];
225 if (from<0) from = 0;
227 syz->m[elnum] =
NULL;
233 poly tmp=syz->m[from];
238 syz->m[from] =
pSub(tmp,
◆ syHilb()
Definition at line 951 of file syz2.cc.
956 int maxindex=0,maxdeg=0;
991 if (origR != syzstr->
syRing)
994 temp->m[
i] =
pCopy( arg->m[
i]);
995 if (temp->m[
i]!=
NULL)
998 if (
j<actdeg) actdeg =
j;
1020 while (nextPairs!=
NULL)
1023 Print(
"compute %d Paare im Module %d im Grad %d \n",howmuch,
index,actdeg+
index);
1044 Print(
"Bilde neue Paare in Modul %d!\n",
index);
1050 Print(
"Bilde neue Paare in Modul %d!\n",
index+1);
1059 PrintS(
"minimal resolution:\n");
1060 for (
int ti=1;ti<=*
length;ti++)
1064 PrintS(
"full resolution:\n");
1065 for (
int ti=1;ti<=*
length;ti++)
1071 Print(
"Criterion %d times applied\n",crit);
1072 Print(
"Criterion1 %d times applied\n",crit1);
1073 Print(
"%d superfluous pairs\n",spfl);
1074 Print(
"%d pairs considered\n",cons_pairs);
1075 Print(
"Criterion fails %d times\n",crit_fails);
1085 if (origR != syzstr->
syRing)
◆ syInitializePair()
void syInitializePair |
( |
SObject * |
so | ) |
|
Definition at line 63 of file syz1.cc.
75 (*so).isNotMinimal =
NULL;
◆ syInitRes()
Definition at line 293 of file syz1.cc.
307 (resPairs[0])[
i].syz = (arg->m[(*iv)[
i]-1]);
308 arg->m[(*iv)[
i]-1] =
NULL;
323 (resPairs[0])[
i].syz = arg->m[
j];
325 (resPairs[0])[
i].order = (*iv)[
j];
329 if (iv!=
NULL)
delete iv;
◆ syInitSyzMod()
int syInitSyzMod |
( |
syStrategy |
syzstr, |
|
|
int |
index, |
|
|
int |
init = 17 |
|
) |
| |
Definition at line 1459 of file syz1.cc.
1471 for (
int i=0;
i<init;
i++)
1482 syzstr->
sev[
index] = (
unsigned long*)
omAlloc0(init*
sizeof(
unsigned long));
◆ syKillComputation()
◆ syKillEmptyEntres()
void syKillEmptyEntres |
( |
resolvente |
res, |
|
|
int |
length |
|
) |
| |
Definition at line 2200 of file syz1.cc.
2214 changes =
new intvec(rj+1,1,-1);
2215 while ((rj>0) && (ri->m[rj-1]==
NULL)) rj--;
2221 ri->m[
j] = ri->m[
j+
k];
2222 (*changes)[
j+
k+1] =
j+1;
2230 for (jj=
j;jj<rj;jj++)
◆ syKosz()
Definition at line 1763 of file syz3.cc.
1767 int crit_comp,t_comp,next_deg,old_tl;
1768 ideal temp=
NULL,old_ideal,old_repr;
1783 if (origR!=syzstr->
syRing)
1793 if (temp->m[0]!=
NULL)
1801 if (jj>maxdeg) maxdeg = jj;
1803 while (!
idIs0(temp))
1808 if (temp->m[
j]!=
NULL)
1818 temp1->m[
k] = temp->m[
j];
1829 #ifdef USE_REGULARITY
1830 int last_generator=
IDELEMS(temp)-1;
1831 while ((last_generator>=0) && (temp->m[last_generator]==
NULL))
1841 ideal temp_gens,old_std;
1843 if (rk_arg>1) syzstr->
res[0]->rank = rk_arg;
1849 if (temp->m[
i]!=
NULL)
1851 new_generators->m[0] =
kNF(syzstr->
res[0],
currRing->qideal,temp->m[
i]);
1853 pNorm(new_generators->m[0]);
1855 next_gen =
pCopy(new_generators->m[0]);
1857 if (!
idIs0(new_generators))
1866 old_tl = (*syzstr->
Tl)[0];
1869 t_comp = (*syzstr->
Tl)[
index];
1870 if (
index==0) crit_comp = t_comp;
1880 #ifdef USE_REGULARITY
1881 if ((
index==0) && (!isRegular) && (
i==last_generator))
1913 PrintS(
"\n not regular\n");
1924 new_generators = temp_gens;
1928 if (
idIs0(new_generators))
break;
1931 if (!
idIs0(new_generators))
1935 if (new_generators->m[
j]!=
NULL)
1938 new_generators->m[
j] =
NULL;
1956 Print(
"The %d-th syzygy-module is now:\n",
index);
1998 PrintS(
"Da ist was faul!!!\n");
1999 Print(
"Aber: Regularitaet %d, Grad %ld\n",
2019 if (origR!=syzstr->
syRing)
◆ syLaScala()
Definition at line 2559 of file syz1.cc.
2588 syzstr->
length = maxlength;
2601 for (
i=0;
i<=arg->rank;
i++)
2608 syzstr->
Tl =
new intvec(maxlength);
2613 if (temp->m[
i]!=
NULL)
2616 if (
j<actdeg) actdeg =
j;
2636 syzstr->
sev = (
unsigned long **)
omAlloc0((maxlength+1)*
sizeof(
unsigned long *));
2646 while (nextPairs!=
NULL)
2668 if (
index<(maxlength-1))
2678 if (origR != syzstr->
syRing)
◆ syLaScala1()
◆ syLaScala3()
Definition at line 2433 of file syz1.cc.
2464 for (
i=0;
i<=arg->rank;
i++)
2476 if (temp->m[
i]!=
NULL)
2479 if (
j<actdeg) actdeg =
j;
2503 while (nextPairs!=
NULL)
2536 if (origR != syzstr->
syRing)
◆ syMinBase()
ideal syMinBase |
( |
ideal |
arg | ) |
|
Definition at line 1005 of file syz.cc.
1020 if ((leng>=1) && (*(weights+1)!=
NULL))
1022 delete *(weights+1);
◆ syMinimize()
◆ syMinimizeResolvente()
void syMinimizeResolvente |
( |
resolvente |
res, |
|
|
int |
length, |
|
|
int |
first |
|
) |
| |
Definition at line 356 of file syz.cc.
361 if (syzIndex<1) syzIndex=1;
◆ syPrint()
Definition at line 1934 of file syz1.cc.
1942 PrintS(
"No resolution defined\n");
1948 if (resolution==
NULL)
1955 (*resolution)[0] = syzstr->
res[1]->rank;
1960 while ((
j<(*syzstr->
Tl)[
k]) &&
1963 if (rP[
k][
j].isNotMinimal==
NULL)
1964 ((*resolution)[
k+1])++;
1984 (*resolution)[
k+1] =
idElem(rr[
k]);
1995 if ((
k>=resolution->
length()) || ((*resolution)[
k]==0))
1997 Print(
"%d",(*resolution)[
k]);
2005 if ((
k>=resolution->
length()) || ((*resolution)[
k]==0))
2008 if (((
k+1)>=resolution->
length()) || ((*resolution)[(
k+1)]==0))
2019 if ((
k>=resolution->
length()) || ((*resolution)[
k]==0))
2029 PrintS(
"resolution not minimized yet\n");
◆ syReorder()
Definition at line 1641 of file syz1.cc.
1649 ring origR=syzstr->
syRing;
1662 ri1 = totake[
i-1]->m;
1708 fullres[
i-1]->m[
j] = q;
1733 fullres[
i-1] =
res[
i];
◆ syReOrderResolventFB()
void syReOrderResolventFB |
( |
resolvente |
res, |
|
|
int |
length, |
|
|
int |
initial = 1 |
|
) |
| |
Definition at line 740 of file syz0.cc.
746 while ((syzIndex!=0) && (
res[syzIndex]==
NULL)) syzIndex--;
751 p =
res[syzIndex]->m[
i];
764 PrintS(
"error in the resolvent\n");
◆ syReorderShiftedComponents()
long syReorderShiftedComponents |
( |
long * |
sc, |
|
|
int |
n |
|
) |
| |
Definition at line 334 of file syz1.cc.
339 long new_comps = 0, new_space,
max;
344 if (sc[
i-1] + 1 < sc[
i]) holes++;
362 assume(new_space < SYZ_SHIFT_BASE && new_space >= 4);
364 long* tc = (
long*)
omAlloc(n*
sizeof(
long));
369 if (sc[
i-1] + 1 < sc[
i])
371 tc[
i] = tc[
i-1] + new_space;
◆ syResetShiftedComponents()
void syResetShiftedComponents |
( |
syStrategy |
syzstr, |
|
|
int |
index, |
|
|
int |
hilb = 0 |
|
) |
| |
◆ syResolution()
Definition at line 614 of file syz.cc.
618 const ideal idSaveCurrRingQuotient =
currRing->qideal;
671 currRing->qideal = idSaveCurrRingQuotient;
◆ syResolvente()
Definition at line 390 of file syz.cc.
405 if (maxlength!=-1) *
length = maxlength+1;
407 if ((wlength!=0) && (*
length!=wlength))
410 wtmp[0]=(*weights)[0];
421 if (syz_ring != origR)
432 if ((weights!=
NULL) && (*weights!=
NULL)&& ((*weights)[0]!=
NULL))
436 WarnS(
"wrong weights given(1):"); (*weights)[0]->show();
PrintLn();
443 if ((weights==
NULL) || (*weights==
NULL) || ((*weights)[0]==
NULL))
454 if ((weights!=
NULL) && (*weights!=
NULL)&& ((*weights)[0]!=
NULL))
467 #endif // HAVE_PLURAL
479 setRegularity =
FALSE;
484 setRegularity =
FALSE;
489 ((maxlength==-1) || (syzIndex<=maxlength)))
501 if (*weights!=
NULL) tempW[
j] = (*weights)[
j];
517 if (minim || (syzIndex!=0))
522 res[syzIndex] = temp;
536 completeMinim=(syzIndex!=maxlength) || (maxlength ==-1) || (hom!=
isHomog);
542 if ((minim)||(syzIndex>1))
563 (*weights)[syzIndex] =
new intvec(
k);
593 for (
i=1;
i<=syzIndex;
i++)
601 if (origR != syz_ring)
604 for (
i=0;
i<=syzIndex;
i++)
◆ sySchreyer()
syStrategy sySchreyer |
( |
ideal |
arg, |
|
|
int |
maxlength |
|
) |
| |
Definition at line 1018 of file syz0.cc.
1029 for (
int i=rl -1;
i>=0;
i--)
1039 for (
int i=0;
i<rl;
i++)
1065 if ((rl>maxlength) && (
result->fullres[rl-1]!=
NULL))
◆ sySchreyerResolvente()
Definition at line 855 of file syz0.cc.
860 int i,syzIndex = 0,
j=0;
869 WerrorS(
"sres only implemented for modules with ordering ..,c or ..,C");
876 while ((!
idIs0(
res[syzIndex])) && ((maxlength==-1) || (syzIndex<maxlength)))
968 if ( origR!=syRing && syRing !=
NULL)
972 while ((syzIndex < *
length) && (
res[syzIndex]))
976 if (
res[syzIndex]->
m[
i])
989 while ((syzIndex < *
length) && (
res[syzIndex]))
993 if (
res[syzIndex]->
m[
i])
1014 if (modcomp!=
NULL)
delete modcomp;
◆ sySchreyersSyzygiesB()
◆ sySchreyersSyzygiesM()
◆ sySize()
◆ syTestOrder()
◆ currcomponents
◆ currShiftedComponents
long* 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)
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
#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)
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)
ring currRing
Widely used global variable which specifies the current polynomial ring for Singular interpreter and ...
resolvente syResolvente(ideal arg, int maxlength, int *length, intvec ***weights, BOOLEAN minim)
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.
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 * currShiftedComponents
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)
long * currShiftedComponents
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)