28 ideal JquotM =
idQuot(Jstd,
M,
true,
true);
29 ideal JquotMredJ =
kNF(Jstd,
currRing->qideal,JquotM);
68 rGraded->block0 = (
int*)
omAlloc0(3*
sizeof(
int));
69 rGraded->block1 = (
int*)
omAlloc0(3*
sizeof(
int));
70 rGraded->wvhdl = (
int**)
omAlloc0(3*
sizeof(
int**));
72 rGraded->block0[0] = 1;
73 rGraded->block1[0] = n;
84 for (
int i=0;
i<
k;
i++)
92 for (
int i=0;
i<
k;
i++)
111 int* cycleAllVariables = (
int*)
omAlloc0((n+1)*
sizeof(int));
112 for (
int i=1;
i<n;
i++)
113 cycleAllVariables[
i]=
i+1;
114 cycleAllVariables[n]=1;
116 int* maxPowers = (
int*)
omAlloc0((n+1)*
sizeof(int));
118 for(
int currentSaturationVariable=n-1; currentSaturationVariable>0; currentSaturationVariable--)
122 for (
int i=0;
i<
k;
i++)
133 if (d>maxPowers[currentSaturationVariable+1])
134 maxPowers[currentSaturationVariable+1]=d;
140 gfan::Integer cache =
w[n-1];
141 for (
int i=n-1;
i>0;
i--)
147 rGradedNew->block0 = (
int*)
omAlloc0(3*
sizeof(
int));
148 rGradedNew->block1 = (
int*)
omAlloc0(3*
sizeof(
int));
149 rGradedNew->wvhdl = (
int**)
omAlloc0(3*
sizeof(
int**));
151 rGradedNew->block0[0] = 1;
152 rGradedNew->block1[0] = n;
159 identity =
n_SetMap(rGraded->cf,rGradedNew->cf);
161 for (
int i=0;
i<
k;
i++)
162 Jold->m[
i] =
p_PermPoly(Jnew->m[
i],cycleAllVariables,rGraded,rGradedNew,identity,
NULL,0);
166 rGraded = rGradedNew;
177 for (
int i=0;
i<
k;
i++)
185 int jDeshifted = (
j-currentSaturationVariable)%n;
186 if (jDeshifted<=0) jDeshifted = jDeshifted+n;
193 omFree(cycleAllVariables);
207 omFree(cycleAllVariables);
220 I = (ideal) u->
CopyD();
226 I = (ideal) u->
Data();
242 ideal I = (ideal) u->
Data();
264 WerrorS(
"searchForMonomialViaStepwiseSaturation: unexpected parameters");
BOOLEAN checkForMonomial(leftv res, leftv args)
Class used for (list of) interpreter objects.
poly kNF(ideal F, ideal Q, poly p, int syzComp, int lazyReduce)
static FORCE_INLINE BOOLEAN n_IsUnit(number n, const coeffs r)
TRUE iff n has a multiplicative inverse in the given coeff field/ring r.
Compatiblity layer for legacy polynomial operations (over currRing)
ideal id_Copy(ideal h1, const ring r)
copy an ideal
bigintmat * iv2bim(intvec *b, const coeffs C)
static FORCE_INLINE number n_Init(long i, const coeffs r)
a number representing i in the given coeff field/ring r
static short rVar(const ring r)
#define rVar(r) (r->N)
void id_Delete(ideal *h, ring r)
deletes an ideal/module/matrix
BOOLEAN id_IsConstant(ideal id, const ring r)
test if the ideal has only constant polynomials NOTE: zero ideal/module is also constant ...
ideal kStd(ideal F, ideal Q, tHomog h, intvec **w, intvec *hilb, int syzComp, int newIdeal, intvec *vw, s_poly_proc_t sp)
ideal gfanlib_monomialabortStd_wrapper(ideal I, ring r, tHomog h=testHomog)
int * ZVectorToIntStar(const gfan::ZVector &v, bool &overflow)
void WerrorS(const char *s)
ideal idQuot(ideal h1, ideal h2, BOOLEAN h1IsStb, BOOLEAN resultIsIdeal)
static number p_SetCoeff(poly p, number n, ring r)
static long p_SubExp(poly p, int v, long ee, ring r)
ring currRing
Widely used global variable which specifies the current polynomial ring for Singular interpreter and ...
poly p_PermPoly(poly p, const int *perm, const ring oldRing, const ring dst, nMapFunc nMap, const int *par_perm, int OldPar, BOOLEAN use_mult)
BOOLEAN rComplete(ring r, int force)
this needs to be called whenever a new ring is created: new fields in ring are created (like VarOffse...
static long p_GetExp(const poly p, const unsigned long iBitmask, const int VarOffset)
get a single variable exponent : the integer VarOffset encodes:
ring rCopy0(const ring r, BOOLEAN copy_qideal, BOOLEAN copy_ordering)
number(* nMapFunc)(number a, const coeffs src, const coeffs dst)
maps "a", which lives in src, into dst
poly checkForMonomialViaSuddenSaturation(const ideal I, const ring r)
poly searchForMonomialViaStepwiseSaturation(const ideal I, const ring r, const gfan::ZVector w0)
static FORCE_INLINE nMapFunc n_SetMap(const coeffs src, const coeffs dst)
set the mapping function pointers for translating numbers from src to dst
void rChangeCurrRing(ring r)
static void p_Delete(poly *p, const ring r)
ideal idInit(int idsize, int rank)
initialise an ideal / module
const Variable & v
< [in] a sqrfree bivariate poly
static unsigned long p_SetExp(poly p, const unsigned long e, const unsigned long iBitmask, const int VarOffset)
set a single variable exponent : VarOffset encodes the position in p->exp
void rDelete(ring r)
unconditionally deletes fields in r
static void p_Setm(poly p, const ring r)
BOOLEAN idIs0(ideal h)
returns true if h is the zero ideal
static poly p_Init(const ring r, omBin bin)
gfan::ZVector * bigintmatToZVector(const bigintmat &bim)