1768 int crit_comp,t_comp,next_deg,old_tl;
1769 ideal temp=
NULL,old_ideal,old_repr;
1784 if (origR!=syzstr->
syRing)
1794 if (temp->m[0]!=
NULL)
1799 for (j=
IDELEMS(temp)-2;j>=0;j--)
1802 if (jj>maxdeg) maxdeg = jj;
1804 while (!
idIs0(temp))
1807 for (j=
IDELEMS(temp)-1;j>=0;j--)
1809 if (temp->m[j]!=
NULL)
1819 temp1->m[
k] = temp->m[
j];
1830 #ifdef USE_REGULARITY 1831 int last_generator=
IDELEMS(temp)-1;
1832 while ((last_generator>=0) && (temp->m[last_generator]==
NULL))
1838 syzstr->
Tl =
new intvec(*length+1);
1842 ideal temp_gens,old_std;
1844 if (rk_arg>1) syzstr->
res[0]->rank = rk_arg;
1850 if (temp->m[i]!=
NULL)
1852 new_generators->m[0] =
kNF(syzstr->
res[0],
currRing->qideal,temp->m[i]);
1854 pNorm(new_generators->m[0]);
1856 next_gen =
pCopy(new_generators->m[0]);
1858 if (!
idIs0(new_generators))
1861 while (
index<=*length)
1867 old_tl = (*syzstr->
Tl)[0];
1870 t_comp = (*syzstr->
Tl)[
index];
1871 if (
index==0) crit_comp = t_comp;
1881 #ifdef USE_REGULARITY 1882 if ((
index==0) && (!isRegular) && (i==last_generator))
1914 PrintS(
"\n not regular\n");
1925 new_generators = temp_gens;
1929 if (
idIs0(new_generators))
break;
1932 if (!
idIs0(new_generators))
1934 for (j=0;j<
IDELEMS(new_generators);j++)
1936 if (new_generators->m[j]!=
NULL)
1938 pDelete(&new_generators->m[j]);
1939 new_generators->m[
j] =
NULL;
1957 Print(
"The %d-th syzygy-module is now:\n",
index);
1981 if (!
idIs0(totake[index]))
1983 for(i=0;i<
IDELEMS(totake[index]);i++)
1985 if (totake[index]->
m[i]!=
NULL)
1999 PrintS(
"Da ist was faul!!!\n");
2000 Print(
"Aber: Regularitaet %d, Grad %ld\n",
2020 if (origR!=syzstr->
syRing)
2024 while ((index<=*length) && (syzstr->
fullres[index]!=
NULL))
poly kNF(ideal F, ideal Q, poly p, int syzComp, int lazyReduce)
static ideal syAppendSyz(ideal new_generators, syStrategy syzstr, int index, int crit_comp, resolvente totake)
#define idDelete(H)
delete an ideal
void syReorder_Kosz(syStrategy syzstr)
static void syCreateRegularExtension(syStrategy syzstr, ideal old_ideal, ideal old_repr, int old_tl, poly next_generator, resolvente totake)
#define omFreeSize(addr, size)
static number & pGetCoeff(poly p)
return an alias to the leading coefficient of p assumes that p != NULL NOTE: not copy ...
void idShow(const ideal id, const ring lmRing, const ring tailRing, const int debugPrint)
poly initial(const poly p, const ring r, const gfan::ZVector w)
Returns the initial form of p with respect to w.
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)
void kBucketDestroy(kBucket_pt *bucket_pt)
long id_RankFreeModule(ideal s, ring lmRing, ring tailRing)
return the maximal component number found in any polynomial in s
ring rAssure_dp_C(const ring r)
static long p_FDeg(const poly p, const ring r)
ideal idrMoveR(ideal &id, ring src_r, ring dest_r)
static int si_max(const int a, const int b)
void PrintS(const char *s)
resolvente sySchreyerResolvente(ideal arg, int maxlength, int *length, BOOLEAN isMonomial=FALSE, BOOLEAN notReplace=FALSE)
void idSkipZeroes(ideal ide)
gives an ideal/module the minimal possible size
static int index(p_Length length, p_Ord ord)
void rChangeCurrRing(ring r)
ideal idInit(int idsize, int rank)
initialise an ideal / module
static BOOLEAN syIsRegular(ideal old_ideal, ideal new_ideal, int deg)
void rDelete(ring r)
unconditionally deletes fields in r
ring rAssure_C_dp(const ring r)
void pNorm(poly p, const ring R=currRing)
ideal id_Head(ideal h, const ring r)
returns the ideals of initial terms
ideal idrCopyR(ideal id, ring src_r, ring dest_r)
intvec * syBetti(resolvente res, int length, int *regularity, intvec *weights, BOOLEAN tomin, int *row_shift)
kBucket_pt kBucketCreate(const ring bucket_ring)
Creation/Destruction of buckets.
BOOLEAN idIs0(ideal h)
returns true if h is the zero ideal
ideal idrMoveR_NoSort(ideal &id, ring src_r, ring dest_r)
#define pCopy(p)
return a copy of the poly