1764 int crit_comp,t_comp,next_deg,old_tl;
1765 ideal temp=
NULL,old_ideal,old_repr;
1780 if (origR!=syzstr->
syRing)
1790 if (temp->m[0]!=
NULL)
1795 for (j=
IDELEMS(temp)-2;j>=0;j--)
1798 if (jj>maxdeg) maxdeg = jj;
1800 while (!
idIs0(temp))
1803 for (j=
IDELEMS(temp)-1;j>=0;j--)
1805 if (temp->m[j]!=
NULL)
1815 temp1->m[
k] = temp->m[
j];
1826 #ifdef USE_REGULARITY 1827 int last_generator=
IDELEMS(temp)-1;
1828 while ((last_generator>=0) && (temp->m[last_generator]==
NULL))
1834 syzstr->
Tl =
new intvec(*length+1);
1838 ideal temp_gens,old_std;
1840 if (rk_arg>1) syzstr->
res[0]->rank = rk_arg;
1846 if (temp->m[i]!=
NULL)
1848 new_generators->m[0] =
kNF(syzstr->
res[0],
currRing->qideal,temp->m[i]);
1850 pNorm(new_generators->m[0]);
1852 next_gen =
pCopy(new_generators->m[0]);
1854 if (!
idIs0(new_generators))
1857 while (
index<=*length)
1863 old_tl = (*syzstr->
Tl)[0];
1866 t_comp = (*syzstr->
Tl)[
index];
1867 if (
index==0) crit_comp = t_comp;
1877 #ifdef USE_REGULARITY 1878 if ((
index==0) && (!isRegular) && (i==last_generator))
1910 PrintS(
"\n not regular\n");
1921 new_generators = temp_gens;
1925 if (
idIs0(new_generators))
break;
1928 if (!
idIs0(new_generators))
1930 for (j=0;j<
IDELEMS(new_generators);j++)
1932 if (new_generators->m[j]!=
NULL)
1934 pDelete(&new_generators->m[j]);
1935 new_generators->m[
j] =
NULL;
1953 Print(
"The %d-th syzygy-module is now:\n",
index);
1977 if (!
idIs0(totake[index]))
1979 for(i=0;i<
IDELEMS(totake[index]);i++)
1981 if (totake[index]->
m[i]!=
NULL)
1995 PrintS(
"Da ist was faul!!!\n");
1996 Print(
"Aber: Regularitaet %d, Grad %ld\n",
2016 if (origR!=syzstr->
syRing)
2020 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)
ring currRing
Widely used global variable which specifies the current polynomial ring for Singular interpreter and ...
poly initial(const poly p, const ring r, const gfan::ZVector &w)
Returns the initial form of p with respect to w.
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