 |
My Project
debian-1:4.1.1-p2+ds-4build2
|
Go to the source code of this file.
|
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-entries More...
|
|
static void | NoReturn (leftv &res) |
|
static BOOLEAN | _ClearContent (leftv res, leftv h) |
| wrapper around n_ClearContent More...
|
|
static BOOLEAN | _ClearDenominators (leftv res, leftv h) |
| wrapper around n_ClearDenominators More...
|
|
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 More...
|
|
static number | jjLONG2N (long d) |
|
static void | view (const intvec *v) |
|
static BOOLEAN | Tail (leftv res, leftv h) |
| wrapper around p_Tail and id_Tail More...
|
|
static BOOLEAN | _SchreyerSyzygyNF (leftv res, leftv h) |
|
static BOOLEAN | _ReduceTerm (leftv res, leftv h) |
| proc SSReduceTerm(poly m, def t, def syzterm, def L, def T, list #) More...
|
|
static BOOLEAN | _TraverseTail (leftv res, leftv h) |
|
static BOOLEAN | _ComputeResolution (leftv res, leftv h) |
|
static BOOLEAN | _ComputeSyzygy (leftv res, leftv h) |
| module (LL, TT) = SSComputeSyzygy(L, T); Compute Syz(L ++ T) = N = LL ++ TT More...
|
|
static BOOLEAN | leadcomp (leftv res, leftv h) |
| Get leading component. More...
|
|
static BOOLEAN | MakeInducedSchreyerOrdering (leftv res, leftv h) |
| Same for Induced Schreyer ordering (ordering on components is defined by sign!) More...
|
|
static BOOLEAN | GetInducedData (leftv res, leftv h) |
| ? More...
|
|
static BOOLEAN | SetInducedReferrence (leftv res, leftv h) |
| Returns old SyzCompLimit, can set new limit. More...
|
|
static BOOLEAN | idPrepare (leftv res, leftv h) |
| Get raw syzygies (idPrepare) More...
|
|
int SI_MOD_INIT() | syzextra (SModulFunctions *psModulFunctions) |
|
◆ ADD
◆ _ClearContent()
wrapper around n_ClearContent
Definition at line 85 of file mod_main.cc.
89 const char *usage =
"'ClearContent' needs a (non-zero!) poly or vector argument...";
107 poly ph =
reinterpret_cast<poly
>(
h->Data());
◆ _ClearDenominators()
wrapper around n_ClearDenominators
Definition at line 131 of file mod_main.cc.
135 const char *usage =
"'ClearDenominators' needs a (non-zero!) poly or vector argument...";
153 poly ph =
reinterpret_cast<poly
>(
h->Data());
◆ _ComputeResolution()
Definition at line 513 of file mod_main.cc.
517 const char* usage =
"`ComputeResolution(<ideal/module>, <same as before>, <same as before>[,int])` expected";
518 const ring r = attributes.m_rBaseRing;
529 const int type =
h->Typ();
530 ideal
M = (ideal)(
h->CopyD());
538 if ((
h==
NULL) || (
h->Typ()!=type) || (
h->Data() ==
NULL))
544 ideal L = (ideal)(
h->CopyD());
548 if ((
h==
NULL) || (
h->Typ()!=type) || (
h->Data() ==
NULL))
554 ideal
T = (ideal)(
h->CopyD());
588 attributes.nextSyzygyLayer();
603 for(
int i =
size-1;
i >= 0;
i-- )
◆ _ComputeSyzygy()
module (LL, TT) = SSComputeSyzygy(L, T); Compute Syz(L ++ T) = N = LL ++ TT
Definition at line 629 of file mod_main.cc.
638 const char* usage =
"`ComputeSyzygy(<ideal/module>, <ideal/module>)` expected";
639 const ring r = attributes.m_rBaseRing;
649 const ideal L = (ideal)
h->Data();
660 const ideal
T = (ideal)
h->Data();
672 l->m[0].rtyp =
MODUL_CMD;
l->m[0].data =
reinterpret_cast<void *
>(LL);
674 l->m[1].rtyp =
MODUL_CMD;
l->m[1].data =
reinterpret_cast<void *
>(TT);
◆ _ReduceTerm()
proc SSReduceTerm(poly m, def t, def syzterm, def L, def T, list #)
Definition at line 342 of file mod_main.cc.
349 const BOOLEAN OPT__TAILREDSYZ = attributes.OPT__TAILREDSYZ;
351 const char* usage =
"`ReduceTerm(<poly>, <poly/vector>, <vector/0>, <ideal/module>, <ideal/module>[,<module>])` expected";
352 const ring r = attributes.m_rBaseRing;
362 const poly multiplier = (poly)
h->Data();
assume (multiplier !=
NULL);
372 const poly term4reduction = (poly)
h->Data();
assume( term4reduction !=
NULL );
375 poly syztermCheck =
NULL;
385 syztermCheck = (poly)
h->Data();
405 const ideal
T = (ideal)
h->Data();
414 LS = (ideal)
h->Data();
419 if(
LIKELY( OPT__TAILREDSYZ) )
426 res->data =
ReduceTerm(multiplier, term4reduction, syztermCheck, L,
T, LS, attributes);
◆ _SchreyerSyzygyNF()
Definition at line 261 of file mod_main.cc.
267 const BOOLEAN OPT__HYBRIDNF = attributes.OPT__HYBRIDNF;
268 const BOOLEAN OPT__TAILREDSYZ = attributes.OPT__TAILREDSYZ;
270 const char* usage =
"`SchreyerSyzygyNF(<vector>, <vector>, <ideal/module>, <ideal/module>[,<module>])` expected";
271 const ring r = attributes.m_rBaseRing;
283 const poly syz_lead = (poly)
h->Data();
assume (syz_lead !=
NULL);
293 const poly syz_2 = (poly)
h->Data();
assume (syz_2 !=
NULL);
312 const ideal
T = (ideal)
h->Data();
321 LS = (ideal)
h->Data();
326 if(
LIKELY( OPT__TAILREDSYZ) )
334 (syz_2!=
NULL)?
p_Copy(syz_2, r): syz_2, L,
T, LS, attributes);
◆ _TraverseTail()
Definition at line 435 of file mod_main.cc.
442 const BOOLEAN OPT__TAILREDSYZ = attributes.OPT__TAILREDSYZ;
444 const char* usage =
"`TraverseTail(<poly>, <poly/vector>, <ideal/module>, <ideal/module>[,<module>])` expected";
445 const ring r = attributes.m_rBaseRing;
455 const poly multiplier = (poly)
h->Data();
assume (multiplier !=
NULL);
464 const poly tail = (poly)
h->Data();
474 const ideal L = (ideal)
h->Data();
485 const ideal
T = (ideal)
h->Data();
495 LS = (ideal)
h->Data();
500 if(
LIKELY( OPT__TAILREDSYZ) )
◆ GetInducedData()
?
Definition at line 744 of file mod_main.cc.
754 p = (int)((
long)(
h->Data()));
h=
h->next;
762 WerrorS(
"`GetInducedData([int])` called on incompatible ring (not created by 'MakeInducedSchreyerOrdering'!)");
767 const int iLimit = r->typ[pos].data.is.limit;
768 const ideal F = r->typ[pos].data.is.F;
776 l->m[0].data =
reinterpret_cast<void *
>(iLimit);
792 l->m[1].data =
reinterpret_cast<void *
>(FF);
795 res->data =
reinterpret_cast<void *
>(
l);
◆ getOptionalInteger()
try to get an optional (simple) integer argument out of h or return the default value
Definition at line 179 of file mod_main.cc.
183 int n = (int)(
long)(
h->Data());
186 Warn(
"Negative (%d) optional integer argument", n);
◆ id_IsModule()
static BOOLEAN id_IsModule |
( |
ideal |
id, |
|
|
ring |
r |
|
) |
| |
|
static |
test whether this input has vectors among entries or no enties result must be FALSE for only 0-entries
Definition at line 55 of file mod_main.cc.
59 if( id->rank != 1 )
return TRUE;
65 for (
int j=0;
j<
l;
j++)
◆ idPrepare()
Get raw syzygies (idPrepare)
Definition at line 851 of file mod_main.cc.
863 WerrorS(
"`idPrepare(<module>)` expected");
867 const ideal I =
reinterpret_cast<ideal
>(
h->Data());
877 iComp = (int)((
long)(
h->Data()));
881 if( (!isSyz) && (-1 == posIS) )
883 WerrorS(
"`idPrepare(<...>)` called on incompatible ring (not created by 'MakeSyzCompOrdering' or 'MakeInducedSchreyerOrdering'!)");
938 res->data =
reinterpret_cast<void *
>(J);
◆ jjLONG2N()
static number jjLONG2N |
( |
long |
d | ) |
|
|
inlinestatic |
◆ leadcomp()
Get leading component.
Definition at line 683 of file mod_main.cc.
691 const poly
p = (poly)(
h->Data());
702 res->data =
reinterpret_cast<void *
>(
jjLONG2N(iComp));
711 WerrorS(
"`leadcomp(<poly/vector>)` expected");
◆ MakeInducedSchreyerOrdering()
Same for Induced Schreyer ordering (ordering on components is defined by sign!)
Definition at line 716 of file mod_main.cc.
724 const int s = (int)((
long)(
h->Data()));
726 if(
s != -1 &&
s != 1 )
728 WerrorS(
"`MakeInducedSchreyerOrdering(<int>)` called with wrong integer argument (must be +-1)!");
◆ NoReturn()
static void NoReturn |
( |
leftv & |
res | ) |
|
|
inlinestatic |
◆ SetInducedReferrence()
Returns old SyzCompLimit, can set new limit.
Definition at line 802 of file mod_main.cc.
810 WerrorS(
"`SetInducedReferrence(<ideal/module>, [int[, int]])` expected");
814 const ideal F = (ideal)
h->Data(); ;
821 rank = (int)((
long)(
h->Data()));
h=
h->next;
830 p = (int)((
long)(
h->Data()));
h=
h->next;
838 WerrorS(
"`SetInducedReferrence(<ideal/module>, [int[, int]])` called on incompatible ring (not created by 'MakeInducedSchreyerOrdering'!)");
◆ syzextra()
Definition at line 942 of file mod_main.cc.
946 psModulFunctions->iiAddCproc((currPack->libname? currPack->libname: ""), (char*)C, D, E);
◆ Tail()
wrapper around p_Tail and id_Tail
Definition at line 222 of file mod_main.cc.
228 WarnS(
"Tail needs a poly/vector/ideal/module argument...");
238 res->data =
p_Tail( (
const poly)
h->Data(), r );
239 res->rtyp =
h->Typ();
249 res->rtyp =
h->Typ();
256 WarnS(
"Tail needs a single poly/vector/ideal/module argument...");
◆ view()
Definition at line 199 of file mod_main.cc.
205 Print (
"intvec: {rows: %d, cols: %d, length: %d, Values: \n",
v->rows(),
v->cols(),
v->length());
207 for (
int i = 0;
i <
v->rows();
i++)
210 for (
int j = 0;
j <
v->cols();
j++)
211 Print (
" %5d", (*
v)[
j +
i * (
v->cols())] );
static void NoReturn(leftv &res)
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!)
static BOOLEAN leadcomp(leftv res, leftv h)
Get leading component.
static BOOLEAN _ComputeResolution(leftv res, leftv h)
static BOOLEAN _TraverseTail(leftv res, leftv h)
static BOOLEAN length(leftv result, leftv arg)
static BOOLEAN idPrepare(leftv res, leftv h)
Get raw syzygies (idPrepare)
BOOLEAN idIs0(ideal h)
returns true if h is the zero ideal
static BOOLEAN _ComputeSyzygy(leftv res, leftv h)
module (LL, TT) = SSComputeSyzygy(L, T); Compute Syz(L ++ T) = N = LL ++ TT
static BOOLEAN _SchreyerSyzygyNF(leftv res, leftv h)
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,...
static BOOLEAN Tail(leftv res, leftv h)
wrapper around p_Tail and id_Tail
static int rGetCurrSyzLimit(const ring r)
static poly p_Copy(poly p, const ring r)
returns a copy of p
ring currRing
Widely used global variable which specifies the current polynomial ring for Singular interpreter and ...
static short rVar(const ring r)
#define rVar(r) (r->N)
intvec * ivCopy(const intvec *o)
void id_Delete(ideal *h, ring r)
deletes an ideal/module/matrix
long id_RankFreeModule(ideal s, ring lmRing, ring tailRing)
return the maximal component number found in any polynomial in s
void PrintS(const char *s)
static BOOLEAN GetInducedData(leftv res, leftv h)
?
void atSet(idhdl root, char *name, void *data, int typ)
static number jjLONG2N(long d)
static FORCE_INLINE number n_Init(long i, const coeffs r)
a number representing i in the given coeff field/ring r
Computation attribute storage.
ring rAssure_InducedSchreyerOrdering(const ring r, BOOLEAN complete, int sgn)
static BOOLEAN _ReduceTerm(leftv res, leftv h)
proc SSReduceTerm(poly m, def t, def syzterm, def L, def T, list #)
static BOOLEAN _ClearDenominators(leftv res, leftv h)
wrapper around n_ClearDenominators
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 poly p_Add_q(poly p, poly q, const ring r)
static BOOLEAN _ClearContent(leftv res, leftv h)
wrapper around n_ClearContent
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 ...
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...
#define rRing_has_Comp(r)
void * atGet(idhdl root, const char *name, int t, void *defaultReturnValue)
ideal idInit(int idsize, int rank)
initialise an ideal / module
void WerrorS(const char *s)
const Variable & v
< [in] a sqrfree bivariate poly
const CanonicalForm int s
static BOOLEAN rIsSyzIndexRing(const ring r)
ideal kStd(ideal F, ideal Q, tHomog h, intvec **w, intvec *hilb, int syzComp, int newIdeal, intvec *vw, s_poly_proc_t sp)
ideal id_Copy(ideal h1, const ring r)
copy an ideal
static int index(p_Length length, p_Ord ord)
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!...