1 #define PLURAL_INTERNAL_DECLARATIONS
34 for(
int i = 0;
i <
s;
i++)
46 for (
int j = 1;
j <= rN;
j++)
59 Print(
"Reducing p: ");
72 Print(
"Reducing q[j = %d]: ",
j);
89 Print(
"reductum q/p: ");
102 Print(
"NF(J/currRing->qideal)=> q: ");
210 Print(
"ideals of diff. size!!!");
258 int flag, flagcnt=0, syzcnt=0;
264 ideal trickyQuotient;
279 ideal h2, s_h2, s_h3;
282 for (i=1; i<=
N; i++ )
290 for (i=1; i<=
N; i++ )
294 for (j=0; j< idI; j++ )
321 if (orig_ring != syz_ring)
337 Print(
".proceeding with the variable %d\n",i);
346 Print(
"...computing Syz");
350 if (orig_ring != syz_ring)
353 for (j=0; j<
IDELEMS(s_h3); j++)
355 if (s_h3->m[j] !=
NULL)
357 if (
p_MinComp(s_h3->m[j],syz_ring) > syzcomp)
364 s_h3->rank -= syzcomp;
382 Print(
"the input is a two--sided ideal");
387 Print(
"..computing Intersect of %d modules\n",syzcnt);
395 for (i=1; i<=
MATCOLS(MI); i++)
398 for (j=0; j<
idElem(I); j++)
416 Print(
"No syzygies");
#define pSetmComp(p)
TODO:
const CanonicalForm int s
poly kNF(ideal F, ideal Q, poly p, int syzComp, int lazyReduce)
ideal kStd(ideal F, ideal Q, tHomog h, intvec **w, intvec *hilb, int syzComp, int newIdeal, intvec *vw)
Compatiblity layer for legacy polynomial operations (over currRing)
#define idSimpleAdd(A, B)
void id_Delete(ideal *h, ring r)
static poly pp_Mult_mm(poly p, poly m, const ring r)
ideal idMultSect(resolvente arg, int length)
ring currRing
Widely used global variable which specifies the current polynomial ring for Singular interpreter and ...
long id_RankFreeModule(ideal s, ring lmRing, ring tailRing)
const CanonicalForm CFMap CFMap & N
static BOOLEAN p_IsConstant(const poly p, const ring r)
ring rAssure_SyzComp(const ring r, BOOLEAN complete)
static ideal idPrepareStd(ideal T, ideal s, int k)
static poly nc_ReduceSpoly(const poly p1, poly p2, const ring r)
void idDelete(ideal *h, ring r=currRing)
delete an ideal
static int si_max(const int a, const int b)
static long p_MinComp(poly p, ring lmRing, ring tailRing)
matrix id_Module2Matrix(ideal mod, const ring R)
static BOOLEAN p_LmDivisibleBy(poly a, poly b, const ring r)
void idSkipZeroes(ideal ide)
void rSetSyzComp(int k, const ring r)
ideal Approx_Step(ideal L)
Ann: ???
void rChangeCurrRing(ring r)
void p_Shift(poly *p, int i, const ring r)
shifts components of the vector p by i
static void p_Delete(poly *p, const ring r)
ideal idInit(int idsize, int rank)
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)
ideal idCopy(ideal A, const ring R=currRing)
int idElem(const ideal F)
number of non-zero polys in F
void p_Write(poly p, ring lmRing, ring tailRing)
#define SI_RESTORE_OPT1(A)
ideal idrCopyR_NoSort(ideal id, ring src_r, ring dest_r)
ideal idrMoveR_NoSort(ideal &id, ring src_r, ring dest_r)
#define pCopy(p)
return a copy of the poly
#define MATELEM(mat, i, j)
ideal twostd(ideal I)
Compute two-sided GB: