3#ifndef _reducedgb_field_local_
4#define _reducedgb_field_local_
exponents::Exponents exponents_t
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 ...
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.
virtual void remainder(POLY &f, bool use_denom, ring_elem &denom)
VECTOR(divisor_info) gb_elems
virtual ~ReducedGB_Field_Local()
ReducedGB_Field_Local(GBRing *R0, const PolynomialRing *originalR0, const FreeModule *F0, const FreeModule *Fsyz0, const GBWeight *wt0)
VECTOR(divisor_info) new _poly_elems
VECTOR(divisor_info) ring_elems
bool find_good_divisor(exponents_t h_exp, int h_comp, int h_deg, int &h_alpha, POLY &result_g, int &result_g_alpha)
VECTOR(int) new pol_alpha
virtual void minimalize(const VECTOR(POLY) &polys0, bool auto_reduced)
void store_in_table(const POLY &h, exponents_t h_exp, int h_comp, int h_alpha)
ReducedGB_Field(GBRing *R0, const PolynomialRing *originalR0, const FreeModule *F0, const FreeModule *Fsyz0)
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)
Per-element bookkeeping record used by ReducedGB_Field_Local during local-ring GB minimisation.