 |
My Project
debian-1:4.1.2-p1+ds-2
|
Go to the documentation of this file.
27 #define HAVE_TAIL_RING
30 #define setmaxL ((4096-12)/sizeof(LObject))
31 #define setmaxLinc ((4096)/sizeof(LObject))
33 #define setmaxT ((4096-12)/sizeof(TObject))
34 #define setmaxTinc ((4096)/sizeof(TObject))
42 #if !defined(KDEBUG) && !defined(NO_INLINE)
43 #define KINLINE inline
110 KINLINE void Set(poly p_in, ring c_r, ring t_r);
127 #ifdef OLIVER_PRIVAT_LT
132 KINLINE void GetLt(poly &
p, ring &r)
const;
217 int use_bucket, ring r);
394 #define ALLOW_PROD_CRIT(A) (!(A)->no_prod_crit)
396 #define ALLOW_PROD_CRIT(A) (1)
449 #ifdef HAVE_MORE_POS_IN_T
518 poly
kCreateZeroPoly(
long exp[],
long cabsind, poly* t_p, ring leadRing, ring tailRing);
541 #define messageSets(s) do {} while (0)
635 poly &m1, poly &m2,
const ring m_r);
638 poly &m1, poly &m2, poly &
lcm,
const ring taiRing);
654 #define kTest(A) (TRUE)
655 #define kTest_TS(A) (TRUE)
656 #define kTest_T(T) (TRUE)
657 #define kTest_S(T) (TRUE)
658 #define kTest_L(T,R) (TRUE)
667 poly
kFindZeroPoly(poly input_p, ring leadRing, ring tailRing);
670 poly
kNF2 (ideal F, ideal
Q, poly q,
kStrategy strat,
int lazyReduce);
671 ideal
kNF2 (ideal F,ideal
Q,ideal q,
kStrategy strat,
int lazyReduce);
676 void f5c (
kStrategy strat,
int& olddeg,
int& minimcnt,
int& hilbeledeg,
677 int& hilbcount,
int& srmax,
int& lrmax,
int& reduc, ideal
Q,
700 poly spNoether =
NULL,
709 poly spNoether =
NULL,
715 poly spNoether =
NULL,
722 poly spNoether =
NULL,
729 poly spNoether =
NULL,
750 poly spNoether =
NULL,
757 poly spNoether =
NULL,
770 poly spNoether =
NULL);
779 int use_buckets=0, ring tailRing=
currRing,
826 unsigned long new_expbound = 0);
853 void enterOnePairShift (poly q, poly
p,
int ecart,
int isFromQ,
kStrategy strat,
int atR,
int ecartq,
int qisFromQ,
int shiftcount,
int ifromS);
KINLINE TObject * S_2_T(int i)
void updateResult(ideal r, ideal Q, kStrategy strat)
KINLINE poly ksOldSpolyRedNew(poly p1, poly p2, poly spNoether=NULL)
void initEcartPairBba(LObject *Lp, poly f, poly g, int ecartF, int ecartG)
int redNF0(LObject *P, kStrategy strat)
BOOLEAN findMinLMPair(poly sig, unsigned long not_sevSig, kStrategy strat, int start)
int posInTSig(const TSet set, const int length, LObject &p)
void kFreeStrat(kStrategy strat)
poly redNF(poly h, int &max_ind, int nonorm, kStrategy strat)
int ksReducePolyGCD(LObject *PR, TObject *PW, poly spNoether=NULL, number *coef=NULL, kStrategy strat=NULL)
KINLINE void ksOldSpolyTail(poly p1, poly q, poly q2, poly spNoether, ring r=currRing)
int ksReducePolyTail(LObject *PR, TObject *PW, poly Current, poly spNoether=NULL)
void completeReduce(kStrategy strat, BOOLEAN withT=FALSE)
poly redtailSba(LObject *L, int end_pos, kStrategy strat, BOOLEAN withT=FALSE, BOOLEAN normalize=FALSE)
void initSbaBuchMora(ideal F, ideal Q, kStrategy strat)
KINLINE poly ksOldCreateSpoly(poly p1, poly p2, poly spNoether=NULL, ring r=currRing)
KINLINE poly k_LmShallowCopyDelete_currRing_2_tailRing(poly p, ring tailRing, omBin bin)
BOOLEAN(* s_poly_proc_t)(kStrategy strat)
KINLINE long pFDeg() const
BOOLEAN syzCriterion(poly sig, unsigned long not_sevSig, kStrategy strat)
int posInLRing(const LSet set, const int length, LObject *L, const kStrategy strat)
void(* enterS)(LObject &h, int pos, kStrategy strat, int atR)
int posInL15Ring(const LSet set, const int length, LObject *L, const kStrategy strat)
EXTERN_VAR int(* test_PosInT)(const TSet T, const int tl, LObject &h)
BOOLEAN homogTest(polyset F, int Fmax)
static void pLmFree(poly p)
frees the space of the monomial m, assumes m != NULL coef is not freed, m is not advanced
long(* pLDegProc)(poly p, int *length, ring r)
BOOLEAN faugereRewCriterion(poly sig, unsigned long not_sevSig, poly lm, kStrategy strat, int start)
void superenterpairsSig(poly h, poly hSig, int hFrom, int k, int ecart, int pos, kStrategy strat, int atR=-1)
KINLINE void ShallowCopyDelete(ring new_tailRing, pShallowCopyDeleteProc p_shallow_copy_delete)
void deleteHC(poly *p, int *e, int *l, kStrategy strat)
void messageStat(int hilbcount, kStrategy strat)
int ksReducePolyZ(LObject *PR, TObject *PW, poly spNoether=NULL, number *coef=NULL, kStrategy strat=NULL)
KINLINE BOOLEAN k_GetLeadTerms(const poly p1, const poly p2, const ring p_r, poly &m1, poly &m2, const ring m_r)
KINLINE void Tail_Mult_nn(number n)
poly kCreateZeroPoly(long exp[], long cabsind, poly *t_p, ring leadRing, ring tailRing)
int posInT110(const TSet set, const int length, LObject &p)
KINLINE poly LmExtractAndIter()
int posInL0(const LSet set, const int length, LObject *L, const kStrategy strat)
void initSL(ideal F, ideal Q, kStrategy strat)
long(* pFDegProc)(poly p, ring r)
int redRing_Z(LObject *h, kStrategy strat)
BOOLEAN syzCriterionInc(poly sig, unsigned long not_sevSig, kStrategy strat)
int(* posInLOld)(const LSet Ls, const int Ll, LObject *Lo, const kStrategy strat)
void(* chainCrit)(poly p, int ecart, kStrategy strat)
int posInT_FDegpLength(const TSet set, const int length, LObject &p)
int posInT17(const TSet set, const int length, LObject &p)
int redHomog(LObject *h, kStrategy strat)
int kFindDivisibleByInT_Z(const kStrategy strat, const LObject *L, const int start=0)
void entersets(LObject h)
void HEckeTest(poly pp, kStrategy strat)
static BOOLEAN length(leftv result, leftv arg)
KINLINE void Tail_Minus_mm_Mult_qq(poly m, poly qq, int lq, poly spNoether)
KINLINE void HeadNormalize()
KINLINE void LmDeleteAndIter()
int posInLSigRing(const LSet set, const int length, LObject *L, const kStrategy strat)
KINLINE sLObject(ring tailRing=currRing)
poly redtailBbaShift(LObject *L, int pos, kStrategy strat, BOOLEAN withT, BOOLEAN normalize)
void message(int i, int *reduc, int *olddeg, kStrategy strat, int red_result)
TObject * kFindDivisibleByInS_T(kStrategy strat, int end_pos, LObject *L, TObject *T, long ecart=LONG_MAX)
BOOLEAN kStratChangeTailRing(kStrategy strat, LObject *L=NULL, TObject *T=NULL, unsigned long new_expbound=0)
void enterOnePairShift(poly q, poly p, int ecart, int isFromQ, kStrategy strat, int atR, int ecartq, int qisFromQ, int shiftcount, int ifromS)
void chainCritSig(poly p, int ecart, kStrategy strat)
int redLazy(LObject *h, kStrategy strat)
int redRiloc(LObject *h, kStrategy strat)
KINLINE sTObject(ring tailRing=currRing)
int posInT15(const TSet set, const int length, LObject &p)
KINLINE TObject ** initR()
int posInL11Ring(const LSet set, const int length, LObject *L, const kStrategy strat)
void initSLSba(ideal F, ideal Q, kStrategy strat)
poly preIntegerCheck(ideal F, ideal Q)
used for GB over ZZ: look for constant and monomial elements in the ideal background: any known const...
KINLINE void pCleardenom()
int kFindDivisibleByInS(const kStrategy strat, int *max_ind, LObject *L)
return -1 if no divisor is found number of first divisor in S, otherwise
KINLINE void Set(ring r=currRing)
poly redNFTail(poly h, const int sl, kStrategy strat)
int posInL11Ringls(const LSet set, const int length, LObject *L, const kStrategy strat)
void enterSSba(LObject &p, int atS, kStrategy strat, int atR=-1)
KINLINE void LmDeleteAndIter()
int posInL15(const LSet set, const int length, LObject *L, const kStrategy strat)
void enterpairsSig(poly h, poly hSig, int from, int k, int ec, int pos, kStrategy strat, int atR=-1)
void initBuchMoraPos(kStrategy strat)
int posInIdealMonFirst(const ideal F, const poly p, int start=0, int end=-1)
void cancelunit(LObject *p, BOOLEAN inNF=FALSE)
void deleteInSSba(int i, kStrategy strat)
int posInLSig(const LSet set, const int length, LObject *L, const kStrategy strat)
EXTERN_VAR denominator_list DENOMINATOR_LIST
int(* red2)(LObject *L, kStrategy strat)
void initHilbCrit(ideal F, ideal Q, intvec **hilb, kStrategy strat)
denominator_list_s * denominator_list
void postReduceByMonSig(LObject *h, kStrategy strat)
KINLINE TObject * s_2_t(int i)
void enterpairsShift(poly h, int k, int ecart, int pos, kStrategy strat, int atR)
KINLINE void ShallowCopyDelete(ring new_tailRing, omBin new_tailBin, pShallowCopyDeleteProc p_shallow_copy_delete, BOOLEAN set_max=TRUE)
KINLINE TObject * T_2(const skStrategy *strat)
void enterT(LObject &p, kStrategy strat, int atT=-1)
int posInL17(const LSet set, const int length, LObject *L, const kStrategy strat)
char posInLDependsOnLength
void initS(ideal F, ideal Q, kStrategy strat)
poly pMove2CurrTail(poly p, kStrategy strat)
void replaceInLAndSAndT(LObject &p, int tj, kStrategy strat)
BOOLEAN sbaCheckGcdPair(LObject *h, kStrategy strat)
int kFindDivisibleByInT(const kStrategy strat, const LObject *L, const int start=0)
return -1 if no divisor is found number of first divisor in T, otherwise
KINLINE BOOLEAN IsNull() const
BOOLEAN kCheckStrongCreation(int atR, poly m1, int atS, poly m2, kStrategy strat)
int redSigRing(LObject *h, kStrategy strat)
ideal sba(ideal F, ideal Q, intvec *w, intvec *hilb, kStrategy strat)
void postReduceByMon(LObject *h, kStrategy strat)
used for GB over ZZ: intermediate reduction by monomial elements background: any known constant eleme...
int posInT17_c(const TSet set, const int length, LObject &p)
static BOOLEAN rField_is_Ring(const ring r)
void messageStatSBA(int hilbcount, kStrategy strat)
ideal bbaShift(ideal F, ideal Q, intvec *w, intvec *hilb, kStrategy strat)
KINLINE poly redtailBba_Z(poly p, int end_pos, kStrategy strat)
int(* posInL)(const LSet set, const int length, LObject *L, const kStrategy strat)
KINLINE poly kNoetherTail()
int posInT_EcartpLength(const TSet set, const int length, LObject &p)
int posInSyz(const kStrategy strat, const poly sig)
void deleteInL(LSet set, int *length, int j, kStrategy strat)
BOOLEAN arriRewCriterion(poly sig, unsigned long not_sevSig, poly lm, kStrategy strat, int start)
BOOLEAN kCheckSpolyCreation(LObject *L, kStrategy strat, poly &m1, poly &m2)
pFDegProc pOrigFDeg_TailRing
static LSet initL(int nr=setmaxL)
void initBuchMoraPosRing(kStrategy strat)
KINLINE void PrepareRed(BOOLEAN use_bucket)
void redtailBbaAlsoLC_Z(LObject *L, int end_pos, kStrategy strat)
KINLINE void SetLmTail(poly lm, poly new_p, int length, int use_bucket, ring r)
int posInT13(const TSet set, const int length, LObject &p)
int posInT0(const TSet set, const int length, LObject &p)
KINLINE poly ksOldSpolyRed(poly p1, poly p2, poly spNoether=NULL)
poly kFindZeroPoly(poly input_p, ring leadRing, ring tailRing)
BOOLEAN(* rewCrit1)(poly sig, unsigned long not_sevSig, poly lm, kStrategy strat, int start)
void initSyzRules(kStrategy strat)
KINLINE long SetDegStuffReturnLDeg()
void initSbaCrit(kStrategy strat)
int redSig(LObject *h, kStrategy strat)
int posInLF5C(const LSet set, const int length, LObject *L, const kStrategy strat)
int redHoney(LObject *h, kStrategy strat)
KINLINE poly k_LmShallowCopyDelete_tailRing_2_currRing(poly p, ring tailRing, omBin bin)
void initBba(kStrategy strat)
int posInT2(const TSet set, const int length, LObject &p)
void exitSba(kStrategy strat)
void initSbaPos(kStrategy strat)
poly pMoveCurrTail2poly(poly p, kStrategy strat)
void enterTShift(LObject p, kStrategy strat, int atT=-1)
int ksReducePolyBound(LObject *PR, TObject *PW, int bound, poly spNoether=NULL, number *coef=NULL, kStrategy strat=NULL)
int kFindInT(poly p, TSet T, int tlength)
returns index of p in TSet, or -1 if not found
int ksReducePolySig(LObject *PR, TObject *PW, long idx, poly spNoether=NULL, number *coef=NULL, kStrategy strat=NULL)
int posInT11(const TSet set, const int length, LObject &p)
KINLINE poly GetLmCurrRing()
void initBuchMora(ideal F, ideal Q, kStrategy strat)
void deleteInS(int i, kStrategy strat)
gmp_float exp(const gmp_float &a)
void initEcartBBA(TObject *h)
KINLINE poly redtailBba(poly p, int end_pos, kStrategy strat, BOOLEAN normalize=FALSE)
int(* posInLSba)(const LSet set, const int length, LObject *L, const kStrategy strat)
pLDegProc pOrigLDeg_TailRing
BOOLEAN(* rewCrit2)(poly sig, unsigned long not_sevSig, poly lm, kStrategy strat, int start)
int ksReducePoly(LObject *PR, TObject *PW, poly spNoether=NULL, number *coef=NULL, kStrategy strat=NULL)
KINLINE unsigned long * initsevT()
int posInT_EcartFDegpLength(const TSet set, const int length, LObject &p)
int ksReducePolyLC(LObject *PR, TObject *PW, poly spNoether=NULL, number *coef=NULL, kStrategy strat=NULL)
void chainCritOpt_1(poly, int, kStrategy strat)
void ksCreateSpoly(LObject *Pair, poly spNoether=NULL, int use_buckets=0, ring tailRing=currRing, poly m1=NULL, poly m2=NULL, TObject **R=NULL)
void initBuchMoraCrit(kStrategy strat)
poly kNF2(ideal F, ideal Q, poly q, kStrategy strat, int lazyReduce)
void initSba(ideal F, kStrategy strat)
void kDebugPrint(kStrategy strat)
Output some debug info about a given strategy.
void exitBuchMora(kStrategy strat)
void enterpairs(poly h, int k, int ec, int pos, kStrategy strat, int atR=-1)
int posInL10(const LSet set, const int length, LObject *L, const kStrategy strat)
void kStratInitChangeTailRing(kStrategy strat)
static poly normalize(poly next_p, ideal add_generators, syStrategy syzstr, int *g_l, int *p_l, int crit_comp)
int kFindSameLMInT_Z(const kStrategy strat, const LObject *L, const int start=0)
static CanonicalForm bound(const CFMatrix &M)
pShallowCopyDeleteProc p_shallow_copy_delete
void enterExtendedSpoly(poly h, kStrategy strat)
void(* initEcartPair)(LObject *h, poly f, poly g, int ecartF, int ecartG)
int posInS(const kStrategy strat, const int length, const poly p, const int ecart_p)
KINLINE TObject * T_1(const skStrategy *strat)
KINLINE poly GetLmTailRing()
KINLINE poly redtailBbaBound(poly p, int end_pos, kStrategy strat, int bound, BOOLEAN normalize=FALSE)
poly kNF2Bound(ideal F, ideal Q, poly q, int bound, kStrategy strat, int lazyReduce)
int posInT1(const TSet set, const int length, LObject &p)
int redFirstShift(LObject *h, kStrategy strat)
int kFindNextDivisibleByInS(const kStrategy strat, int start, int max_ind, LObject *L)
KINLINE void k_GetStrongLeadTerms(const poly p1, const poly p2, const ring leadRing, poly &m1, poly &m2, poly &lcm, const ring taiRing)
void reorderS(int *suc, kStrategy strat)
KINLINE void SetLmCurrRing()
void cleanT(kStrategy strat)
void enterOnePairNormal(int i, poly p, int ecart, int isFromQ, kStrategy strat, int atR)
long ind_fact_2(long arg)
#define pLmDelete(p)
assume p != NULL, deletes Lm(p)->coef and Lm(p)
void f5c(kStrategy strat, int &olddeg, int &minimcnt, int &hilbeledeg, int &hilbcount, int &srmax, int &lrmax, int &reduc, ideal Q, intvec *w, intvec *hilb)
KINLINE void Mult_nn(number n)
KINLINE poly k_LmInit_currRing_2_tailRing(poly p, ring tailRing, omBin bin)
int lcm(unsigned long *l, unsigned long *a, unsigned long *b, unsigned long p, int dega, int degb)
KINLINE void SetShortExpVector()
int posInL10Ring(const LSet set, const int length, LObject *L, const kStrategy strat)
void enterT_strong(LObject &p, kStrategy strat, int atT=-1)
int ksReducePolySigRing(LObject *PR, TObject *PW, long idx, poly spNoether=NULL, number *coef=NULL, kStrategy strat=NULL)
void chainCritNormal(poly p, int ecart, kStrategy strat)
void initEcartPairMora(LObject *Lp, poly f, poly g, int ecartF, int ecartG)
BOOLEAN(* rewCrit3)(poly sig, unsigned long not_sevSig, poly lm, kStrategy strat, int start)
int posInL11(const LSet set, const int length, LObject *L, const kStrategy strat)
void enterSBbaShift(LObject &p, int atS, kStrategy strat, int atR=-1)
BOOLEAN newHEdge(kStrategy strat)
char completeReduce_retry
void updateS(BOOLEAN toT, kStrategy strat)
int posInSMonFirst(const kStrategy strat, const int length, const poly p)
poly(* pShallowCopyDeleteProc)(poly s_p, ring source_r, ring dest_r, omBin dest_bin)
returns a poly from dest_r which is a ShallowCopy of s_p from source_r assumes that source_r->N == de...
int posInLF5CRing(const LSet set, int start, const int length, LObject *L, const kStrategy strat)
void enterSyz(LObject &p, kStrategy strat, int atT)
VAR ring currRing
Widely used global variable which specifies the current polynomial ring for Singular interpreter and ...
KINLINE poly k_LmInit_tailRing_2_currRing(poly p, ring tailRing, omBin bin)
KINLINE long pTotalDeg() const
void(* initEcart)(TObject *L)
poly ksCreateShortSpoly(poly p1, poly p2, ring tailRing)
ring sbaRing(kStrategy strat, const ring r=currRing, BOOLEAN complete=TRUE, int sgn=1)
void enterExtendedSpolySig(poly h, poly hSig, kStrategy strat)
ideal bba(ideal F, ideal Q, intvec *w, intvec *hilb, kStrategy strat)
void enterSBba(LObject &p, int atS, kStrategy strat, int atR=-1)
int(* red)(LObject *L, kStrategy strat)
KINLINE sLObject & operator=(const sTObject &)
void superenterpairs(poly h, int k, int ecart, int pos, kStrategy strat, int atR=-1)
poly pCopyL2p(LObject h, kStrategy strat)
KINLINE void Init(ring tailRing=currRing)
int(* posInT)(const TSet T, const int tl, LObject &h)
void enterL(LSet *set, int *length, int *LSetmax, LObject p, int at)
static void kDeleteLcm(LObject *P)
CFArray copy(const CFList &list)
write elements of list into an array
KINLINE BOOLEAN arriRewDummy(poly sig, unsigned long not_sevSig, poly lm, kStrategy strat, int start)
KINLINE poly GetLm(ring r)
int posInL110(const LSet set, const int length, LObject *L, const kStrategy strat)
KINLINE void clearS(poly p, unsigned long p_sev, int *at, int *k, kStrategy strat)
int posInT_pLength(const TSet set, const int length, LObject &p)
BOOLEAN(* syzCrit)(poly sig, unsigned long not_sevSig, kStrategy strat)
KINLINE void T_1_2(const skStrategy *strat, TObject *&T_1, TObject *&T_2)
int redRing(LObject *h, kStrategy strat)
int posInL13(const LSet set, const int length, LObject *L, const kStrategy strat)
KINLINE long GetpFDeg() const
poly redtail(poly p, int end_pos, kStrategy strat)
void finalReduceByMon(kStrategy strat)
used for GB over ZZ: final reduction by constant elements background: any known constant element of i...
EXTERN_VAR int(* test_PosInL)(const LSet set, const int length, LObject *L, const kStrategy strat)
KINLINE int SetLength(BOOLEAN lengt_pLength=FALSE)
BOOLEAN arriRewCriterionPre(poly sig, unsigned long not_sevSig, poly lm, kStrategy strat, int start)
void initBbaShift(kStrategy strat)
void(* enterOnePair)(int i, poly p, int ecart, int isFromQ, kStrategy strat, int atR)
KINLINE poly GetP(omBin lmBin=(omBin) NULL)
int sgn(const Rational &a)
int posInT19(const TSet set, const int length, LObject &p)
KINLINE long SetDegStuffReturnLDeg()
void initEcartNormal(TObject *h)
KINLINE void CanonicalizeP()
KINLINE void Init(ring r=currRing)