1#define PLURAL_INTERNAL_DECLARATIONS
30 for(
int i = 0;
i <
s;
i++)
32 const poly
p = J->m[
i];
42 for (
int j = 1;
j <= rN;
j++)
68 Print(
"Reducing q[j = %d]: ",
j);
98 PrintS(
"NF(J/currRing->qideal)=> q: ");
206 PrintS(
"ideals of diff. size!!!");
254 int flag, flagcnt=0, syzcnt=0;
260 ideal trickyQuotient;
268 poly *var = (poly *)
omAlloc0((
N+1)*
sizeof(poly));
275 ideal h2, s_h2, s_h3;
278 for (
i=1;
i<=
N;
i++ )
286 for (
i=1;
i<=
N;
i++ )
290 for (
j=0;
j< idI;
j++ )
317 if (orig_ring != syz_ring)
333 Print(
".proceeding with the variable %d\n",
i);
342 PrintS(
"...computing Syz");
346 if (orig_ring != syz_ring)
351 if (s_h3->m[
j] !=
NULL)
360 s_h3->rank -= syzcomp;
378 PrintS(
"the input is a two--sided ideal");
383 Print(
"..computing Intersect of %d modules\n",syzcnt);
static int si_max(const int a, const int b)
const CanonicalForm CFMap CFMap & N
const CanonicalForm int s
ideal idMultSect(resolvente arg, int length, GbVariant alg)
#define idDelete(H)
delete an ideal
#define idSimpleAdd(A, B)
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, s_poly_proc_t sp)
static poly nc_ReduceSpoly(const poly p1, poly p2, const ring r)
#define MATELEM(mat, i, j)
1-based access to matrix
ideal Approx_Step(ideal L)
Ann: ???
static ideal idPrepareStd(ideal T, ideal s, int k)
ideal twostd(ideal I)
Compute two-sided GB:
#define SI_RESTORE_OPT1(A)
void p_Shift(poly *p, int i, const ring r)
shifts components of the vector p by i
void p_Write(poly p, ring lmRing, ring tailRing)
static poly pp_Mult_mm(poly p, poly m, const ring r)
static unsigned long p_SetExp(poly p, const unsigned long e, const unsigned long iBitmask, const int VarOffset)
set a single variable exponent @Note: VarOffset encodes the position in p->exp
static long p_MinComp(poly p, ring lmRing, ring tailRing)
static void p_Setm(poly p, const ring r)
static BOOLEAN p_IsConstant(const poly p, const ring r)
static BOOLEAN p_LmDivisibleBy(poly a, poly b, const ring r)
static void p_Delete(poly *p, const ring r)
void rChangeCurrRing(ring r)
VAR ring currRing
Widely used global variable which specifies the current polynomial ring for Singular interpreter and ...
Compatibility layer for legacy polynomial operations (over currRing)
#define pSetmComp(p)
TODO:
#define pCopy(p)
return a copy of the poly
ideal idrMoveR_NoSort(ideal &id, ring src_r, ring dest_r)
ideal idrCopyR_NoSort(ideal id, ring src_r, ring dest_r)
void PrintS(const char *s)
ring rAssure_SyzComp(const ring r, BOOLEAN complete)
void rDelete(ring r)
unconditionally deletes fields in r
void rSetSyzComp(int k, const ring r)
ideal idInit(int idsize, int rank)
initialise an ideal / module
void id_Delete(ideal *h, ring r)
deletes an ideal/module/matrix
matrix id_Module2Matrix(ideal mod, const ring R)
long id_RankFreeModule(ideal s, ring lmRing, ring tailRing)
return the maximal component number found in any polynomial in s
void idSkipZeroes(ideal ide)
gives an ideal/module the minimal possible size
static int idElem(const ideal F)
number of non-zero polys in F