20 const Monoid *M =
R_->get_flattened_monoid();
25 if (!wts0 || wts0->len !=
nvars_)
28 for (
int i = 0; i <
nvars_; i++)
31 wts_->array[i] = (d > 0 ? d : 1);
39 for (
int i = 0; i <
nvars_; i++)
41 int d = wts0->array[i];
42 wts_->array[i] = (d > 0 ? d : 1);
67 if (f ==
nullptr)
return 0;
69 R_->gbvector_get_lead_exponents(
F_, f, EXP);
79 initial_term_weight = 0;
83 initial_term_weight = deg;
87 if (tdeg > deg) deg = tdeg;
102 R_->get_flattened_monoid()->to_expvector(monom, EXP);
exponents::ConstExponents const_exponents
exponents::Exponents exponents_t
static Exponent weight(int nvars, ConstExponents a, const std::vector< Exponent > &wts)
const Ring * get_ring() const
int primary_degree(int i) const
Engine-side free module R^n over a Ring.
int gbvector_term_weight(const gbvector *f) const
int monomial_weight(const_monomial m, int comp) const
bool use_component_degrees_
int gbvector_weight(const gbvector *f) const
GBWeight(const FreeModule *F, M2_arrayint wts)
int exponents_weight(const_exponents e, int comp) const
int primary_degree_of_var(int v) const
Engine-side commutative monomial monoid: variable names, ordering, multidegree machinery,...
virtual GBRing * get_gb_ring() const
Abstract base for the engine's polynomial-ring hierarchy.
FreeModule — finite-rank free module R^n, the type-level anchor for every Matrix.
GBRing and gbvector — the GB-tuned polynomial-ring view used by classical Buchberger code.
GBWeight — packed-weight evaluator that drives S-pair selection.
const int * const_monomial
M2_arrayint M2_makearrayint(int n)
#define ALLOCATE_EXPONENTS(byte_len)
#define EXPONENT_BYTE_SIZE(nvars)
#define newarray_atomic(T, len)
PolynomialRing — abstract polynomial-ring base, the engine's most-reused class.