Engine-side free module R^n over a Ring.
Polynomial-ring view tuned for the inner loop of classical Buchberger Groebner-basis computations.
Heuristic-weight evaluator for gbvectors, used during Groebner basis computation to drive the S-pair ...
virtual void add_marked_elems(const VECTOR(gbvector *) &leadterms, const VECTOR(POLY) &polys0, bool auto_reduced)
virtual void set_gb(VECTOR(POLY) &polys0)
virtual void remainder(POLY &f, bool use_denom, ring_elem &denom)
const FreeModule * get_ambient_FreeModule() const
virtual const Matrix * get_parallel_lead_terms(M2_arrayint w)
MarkedGB(const PolynomialRing *originalR0, const FreeModule *F0, const FreeModule *Fsyz0)
friend ReducedGB * ReducedGB::create(const PolynomialRing *originalR0, const FreeModule *F0, const FreeModule *Fsyz0, const GBWeight *wt0)
void geo_remainder(gbvector *&f, bool use_denom, ring_elem &denom)
virtual const Matrix * get_initial(int nparts)
const GBRing * get_gb_ring() const
void marked_remainder(POLY &f, bool use_denom, ring_elem &denom, gbvector *marked_lead_term)
Indexed table of monomials with fast "find a divisor" lookup, keyed by a free integer val per entry.
Abstract base for the engine's polynomial-ring hierarchy.
static ReducedGB * create(const PolynomialRing *originalR0, const FreeModule *F0, const FreeModule *Fsyz0, const GBWeight *wt0=nullptr)
ReducedGB(GBRing *R0, const PolynomialRing *originalR0, const FreeModule *F0, const FreeModule *Fsyz0)
ReducedGB — abstract base for the canonicalising reduction pass that follows GB computation.