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)
1798 for (j=
IDELEMS(temp)-2;j>=0;j--)
1801 if (jj>maxdeg) maxdeg = jj;
1803 while (!
idIs0(temp))
1806 for (j=
IDELEMS(temp)-1;j>=0;j--)
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))
1837 syzstr->
Tl =
new intvec(*length+1);
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))
1860 while (
index<=*length)
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))
1933 for (j=0;j<
IDELEMS(new_generators);j++)
1935 if (new_generators->m[j]!=
NULL)
1937 pDelete(&new_generators->m[j]);
1938 new_generators->m[
j] =
NULL;
1956 Print(
"The %d-th syzygy-module is now:\n",
index);
1980 if (!
idIs0(totake[index]))
1982 for(i=0;i<
IDELEMS(totake[index]);i++)
1984 if (totake[index]->
m[i]!=
NULL)
1998 PrintS(
"Da ist was faul!!!\n");
1999 Print(
"Aber: Regularitaet %d, Grad %ld\n",
2019 if (origR!=syzstr->
syRing)
2023 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