1 #define PLURAL_INTERNAL_DECLARATIONS 28 if(
h.IsNull())
return;
68 if(
h.IsNull())
return;
152 PrintS(
"ideal tempF: \n");
154 PrintS(
"ideal tempQ: \n");
213 if(
strat->
P.IsNull())
continue;
223 if(
strat->
P.IsNull())
continue;
238 if(
strat->
P.IsNull())
continue;
255 for(
unsigned int i = m_iFirstAltVar;
i <= m_iLastAltVar;
i++ )
266 if( tt ==
NULL)
continue;
381 PrintS(
"\n\n<sca_bba>\n\n");
473 #undef HAVE_TAIL_RING 475 #ifdef HAVE_TAIL_RING 499 const poly pSave = tempF->m[iNewElement];
508 for(
unsigned int i = m_iFirstAltVar;
i <= m_iLastAltVar;
i++ )
519 if( p_new ==
NULL)
continue;
587 if(
strat->
P.IsNull())
continue;
599 if(
strat->
P.IsNull())
continue;
613 &olddeg,&reduc,
strat, red_result);
698 for(
unsigned int i = m_iFirstAltVar;
i <= m_iLastAltVar;
i++ )
708 if( p_new ==
NULL)
continue;
747 if (red_result != 1)
continue;
850 PrintS(
"\n\n</sca_bba>\n\n");
862 #ifdef MORA_USE_BUCKETS 868 #ifdef MORA_USE_BUCKETS 973 #undef HAVE_TAIL_RING 975 #ifdef HAVE_TAIL_RING 990 const poly pSave = tempF->m[iNewElement];
999 for(
unsigned int i = m_iFirstAltVar;
i <= m_iLastAltVar;
i++ )
1011 if( p_new ==
NULL)
continue;
1068 if(
strat->
P.IsNull())
continue;
1135 for(
unsigned int i = m_iFirstAltVar;
i <= m_iLastAltVar;
i++ )
1147 if( p_new ==
NULL)
continue;
int(* posInL)(const LSet set, const int length, LObject *L, const kStrategy strat)
ideal SCAQuotient(const ring r)
poly redtail(LObject *L, int pos, kStrategy strat)
void mu(int **points, int sizePoints)
int redEcart(LObject *h, kStrategy strat)
#define TEST_OPT_DEGBOUND
void initBuchMoraPos(kStrategy strat)
ideal k_sca_bba(const ideal F, const ideal Q, const intvec *, const intvec *, kStrategy strat, const ring _currRing)
Modified modern Sinuglar Buchberger's algorithm.
ideal k_sca_gr_bba(const ideal F, const ideal Q, const intvec *, const intvec *, kStrategy strat, const ring _currRing)
Modified Plural's Buchberger's algorithmus.
void message(int i, int *reduc, int *olddeg, kStrategy strat, int red_result)
void initMora(ideal F, kStrategy strat)
BOOLEAN p_ComparePolys(poly p1, poly p2, const ring r)
returns TRUE if p1 is a skalar multiple of p2 assume p1 != NULL and p2 != NULL
void messageStat(int hilbcount, kStrategy strat)
ideal k_sca_mora(const ideal F, const ideal Q, const intvec *, const intvec *, kStrategy strat, const ring _currRing)
Modified modern Sinuglar Mora's algorithm.
Compatiblity layer for legacy polynomial operations (over currRing)
void initBuchMora(ideal F, ideal Q, kStrategy strat)
int redFirst(LObject *h, kStrategy strat)
void addLObject(LObject &h, kStrategy &strat)
#define omFreeSize(addr, size)
static bool id_IsSCAHomogeneous(const ideal id, const intvec *wCx, const intvec *wCy, const ring r)
static short rVar(const ring r)
#define rVar(r) (r->N)
void id_Delete(ideal *h, ring r)
deletes an ideal/module/matrix
void enterpairs(poly h, int k, int ecart, int pos, kStrategy strat, int atR)
#define TEST_OPT_MULTBOUND
void cancelunit(LObject *L, BOOLEAN inNF)
void initBba(kStrategy strat)
void enterL(LSet *set, int *length, int *LSetmax, LObject p, int at)
static number & pGetCoeff(poly p)
return an alias to the leading coefficient of p assumes that p != NULL NOTE: not copy ...
int(* red)(LObject *L, kStrategy strat)
KINLINE poly redtailBba(poly p, int pos, kStrategy strat, BOOLEAN normalize)
int(* posInT)(const TSet T, const int tl, LObject &h)
void updateL(kStrategy strat)
void kStratInitChangeTailRing(kStrategy strat)
#define TEST_OPT_NOT_BUCKETS
void enterT(LObject &p, kStrategy strat, int atT)
void deleteInL(LSet set, int *length, int j, kStrategy strat)
void(* initEcart)(TObject *L)
ring currRing
Widely used global variable which specifies the current polynomial ring for Singular interpreter and ...
static int sca_mora_count
#define TEST_OPT_INTSTRATEGY
static long p_GetExp(const poly p, const unsigned long iBitmask, const int VarOffset)
get a single variable exponent : the integer VarOffset encodes:
int scMult0Int(ideal S, ideal Q, const ring tailRing)
void updateLHC(kStrategy strat)
#define pGetShortExpVector(a)
returns the "Short Exponent Vector" – used to speed up divisibility tests (see polys-impl.cc )
void(* enterS)(LObject &h, int pos, kStrategy strat, int atR)
poly sca_pp_Mult_xi_pp(short i, const poly pPoly, const ring rRing)
void initBuchMoraCrit(kStrategy strat)
void reorderL(kStrategy strat)
void rDebugPrint(const ring r)
ideal kInterRedOld(ideal F, ideal Q)
void PrintS(const char *s)
int(* posInLOld)(const LSet Ls, const int Ll, LObject *Lo, const kStrategy strat)
void rWrite(ring r, BOOLEAN details)
void p_Content(poly ph, const ring r)
static short scaFirstAltVar(ring r)
void rChangeCurrRing(ring r)
static BOOLEAN rField_is_Ring(const ring r)
ideal id_KillSquares(const ideal id, const short iFirstAltVar, const short iLastAltVar, const ring r, const bool bSkipZeroes)
void firstUpdate(kStrategy strat)
int posInT110(const TSet set, const int length, LObject &p)
void pNorm(poly p, const ring R=currRing)
static BOOLEAN kMoraUseBucket(kStrategy)
int posInS(const kStrategy strat, const int length, const poly p, const int ecart_p)
static short scaLastAltVar(ring r)
void nc_gr_initBba(ideal F, kStrategy strat)
nc_gr_initBba is needed for sca_gr_bba and gr_bba.
static bool rIsSCA(const ring r)
void completeReduce(kStrategy strat, BOOLEAN withT)
void updateResult(ideal r, ideal Q, kStrategy strat)
static void pLmFree(poly p)
frees the space of the monomial m, assumes m != NULL coef is not freed, m is not advanced ...
int(* test_PosInT)(const TSet T, const int tl, LObject &h)
static poly nc_CreateSpoly(const poly p1, const poly p2, const ring r)
void p_wrp(poly p, ring lmRing, ring tailRing)
int(* test_PosInL)(const LSet set, const int length, LObject *L, const kStrategy strat)
BOOLEAN idIs0(ideal h)
returns true if h is the zero ideal
poly p_Cleardenom(poly p, const ring r)
void exitBuchMora(kStrategy strat)
int posInL10(const LSet set, const int length, LObject *p, const kStrategy strat)
void kDebugPrint(kStrategy strat)