52 if( id->rank != 1 )
return TRUE;
58 for (
int j=0;
j<
l;
j++)
82 const char *usage =
"'ClearContent' needs a (non-zero!) poly or vector argument...";
100 poly ph =
reinterpret_cast<poly
>(h->
Data());
128 const char *usage =
"'ClearDenominators' needs a (non-zero!) poly or vector argument...";
146 poly ph =
reinterpret_cast<poly
>(h->
Data());
176 int n = (int)(
long)(h->
Data());
179 Warn(
"Negative (%d) optional integer argument", n);
198 Print (
"intvec: {rows: %d, cols: %d, length: %d, Values: \n", v->
rows(), v->
cols(), v->
length());
200 for (
int i = 0;
i < v->
rows();
i++)
203 for (
int j = 0;
j < v->
cols();
j++)
221 WarnS(
"Tail needs a poly/vector/ideal/module argument...");
249 WarnS(
"Tail needs a single poly/vector/ideal/module argument...");
260 const poly
p = (poly)(h->
Data());
267 const unsigned long iComp =
p_GetComp(p, r);
281 WerrorS(
"`leadcomp(<poly/vector>)` expected");
291 const int s = (int)((
long)(h->
Data()));
293 if( s != -1 && s != 1 )
295 WerrorS(
"`MakeInducedSchreyerOrdering(<int>)` called with wrong integer argument (must be +-1)!");
302 assume( sign == 1 || sign == -1 );
319 p = (int)((
long)(h->
Data())); h=h->
next;
327 WerrorS(
"`GetInducedData([int])` called on incompatible ring (not created by 'MakeInducedSchreyerOrdering'!)");
332 const int iLimit = r->typ[pos].data.is.limit;
333 const ideal F = r->typ[pos].data.is.F;
341 l->
m[0].
data =
reinterpret_cast<void *
>(iLimit);
357 l->
m[1].
data =
reinterpret_cast<void *
>(FF);
360 res->
data =
reinterpret_cast<void *
>(
l);
376 WerrorS(
"`SetInducedReferrence(<ideal/module>, [int[, int]])` expected");
380 const ideal F = (ideal)h->
Data(); ;
387 rank = (int)((
long)(h->
Data())); h=h->
next;
396 p = (int)((
long)(h->
Data())); h=h->
next;
404 WerrorS(
"`SetInducedReferrence(<ideal/module>, [int[, int]])` called on incompatible ring (not created by 'MakeInducedSchreyerOrdering'!)");
427 WerrorS(
"`idPrepare(<module>)` expected");
431 const ideal I =
reinterpret_cast<ideal
>(h->
Data());
441 iComp = (int)((
long)(h->
Data()));
445 if( (!isSyz) && (-1 == posIS) )
447 WerrorS(
"`idPrepare(<...>)` called on incompatible ring (not created by 'MakeSyzCompOrdering' or 'MakeInducedSchreyerOrdering'!)");
502 res->
data =
reinterpret_cast<void *
>(J);
510 psModulFunctions->iiAddCproc((currPack->libname? currPack->libname: ""), (char*)C, D, E);
const CanonicalForm int s
static void view(const intvec *v)
Class used for (list of) interpreter objects.
static BOOLEAN idPrepare(leftv res, leftv h)
Get raw syzygies (idPrepare)
static number jjLONG2N(long d)
static void NoReturn(leftv &res)
Compatiblity layer for legacy polynomial operations (over currRing)
ideal id_Copy(ideal h1, const ring r)
copy an ideal
static BOOLEAN id_IsModule(ideal id, ring r)
test whether this input has vectors among entries or no enties result must be FALSE for only 0-entrie...
static BOOLEAN rIsSyzIndexRing(const ring r)
static int rGetCurrSyzLimit(const ring r)
static BOOLEAN _ClearContent(leftv res, leftv h)
wrapper around n_ClearContent
static FORCE_INLINE number n_Init(long i, const coeffs r)
a number representing i in the given coeff field/ring r
static BOOLEAN Tail(leftv res, leftv h)
wrapper around p_Tail and id_Tail
intvec * ivCopy(const intvec *o)
ideal kStd(ideal F, ideal Q, tHomog h, intvec **w, intvec *hilb, int syzComp, int newIdeal, intvec *vw, s_poly_proc_t sp)
static int getOptionalInteger(const leftv &h, const int _n)
try to get an optional (simple) integer argument out of h or return the default value ...
void WerrorS(const char *s)
int rGetISPos(const int p, const ring r)
Finds p^th IS ordering, and returns its position in r->typ[] returns -1 if something went wrong! p - ...
static BOOLEAN GetInducedData(leftv res, leftv h)
?
static BOOLEAN leadcomp(leftv res, leftv h)
Get leading component.
ring rAssure_InducedSchreyerOrdering(const ring r, BOOLEAN complete, int sgn)
static FORCE_INLINE void n_ClearContent(ICoeffsEnumerator &numberCollectionEnumerator, number &c, const coeffs r)
Computes the content and (inplace) divides it out on a collection of numbers number c is the content ...
Coefficient rings, fields and other domains suitable for Singular polynomials.
long id_RankFreeModule(ideal s, ring lmRing, ring tailRing)
return the maximal component number found in any polynomial in s
Concrete implementation of enumerators over polynomials.
int SI_MOD_INIT() syzextra(SModulFunctions *psModulFunctions)
This is a polynomial enumerator for simple iteration over coefficients of polynomials.
The main handler for Singular numbers which are suitable for Singular polynomials.
static BOOLEAN SetInducedReferrence(leftv res, leftv h)
Returns old SyzCompLimit, can set new limit.
static BOOLEAN MakeInducedSchreyerOrdering(leftv res, leftv h)
Same for Induced Schreyer ordering (ordering on components is defined by sign!)
void atSet(idhdl root, char *name, void *data, int typ)
void PrintS(const char *s)
INLINE_THIS void Init(int l=0)
#define rRing_has_Comp(r)
const Variable & v
< [in] a sqrfree bivariate poly
void * atGet(idhdl root, const char *name, int t, void *defaultReturnValue)
static BOOLEAN _ClearDenominators(leftv res, leftv h)
wrapper around n_ClearDenominators
BOOLEAN rSetISReference(const ring r, const ideal F, const int i, const int p)
Changes r by setting induced ordering parameters: limit and reference leading terms F belong to r...
ring currRing
Widely used global variable which specifies the current polynomial ring for Singular interpreter and ...
static FORCE_INLINE void n_ClearDenominators(ICoeffsEnumerator &numberCollectionEnumerator, number &d, const coeffs r)
(inplace) Clears denominators on a collection of numbers number d is the LCM of all the coefficient d...