30 R =
F->get_ring()->cast_to_PolynomialRing();
51 if (
error())
return false;
59 R->getMonoid()->from_expvector(a, m);
60 ring_elem r =
R->make_flat_term(
R->getCoefficientRing()->one(), m);
61 vec v =
R->make_vec(comp - 1, r);
75 if (h ==
nullptr)
return false;
85 for (
int i = 0; i < elems.size(); i++) mat.
set_column(i, elems[i]);
Engine-side free module R^n over a Ring.
const RingElement * hf_orig
bool addMonomial(int *a, int comp)
HilbertController(const FreeModule *F0, const RingElement *hf)
bool recomputeHilbertFunction()
MatrixConstructor * leadterms
bool setDegree(int this_degree)
Matrix * make_lead_term_matrix()
void set_column(int c, vec v)
Mutable builder used to assemble an immutable Matrix one column (or one term) at a time.
Front-end-visible "ring element" value: an engine ring_elem paired with the Ring* that gives it meani...
static int coeff_of(const RingElement *h, int deg)
static RingElement * hilbertNumerator(const Matrix *M)
Engine error-reporting primitives: ERROR, INTERNAL_ERROR, error, error_message.
FreeModule — finite-rank free module R^n, the type-level anchor for every Matrix.
HilbertController — early-exit driver for F4 given a known Hilbert series.
Hilbert-series numerator via the Bigatti-Caboara-Robbiano recursion.
MatrixConstructor — the mutable builder that produces an immutable Matrix.
Monoid — variable count, naming, grading, and monomial order of a polynomial ring.
PolynomialRing — abstract polynomial-ring base, the engine's most-reused class.
RingElement — tagged (Ring*, ring_elem) pair, the engine's universal element type.
Ring — the legacy abstract base class for every coefficient and polynomial ring.
Engine-wide stylistic constants: LT / EQ / GT codes, INTSIZE, GEOHEAP_SIZE.