28 const std::vector<int>& weights,
36 o <<
"-- a raw Groebner basis computation --";
48 int max_reduction_count)
53 std::vector<int> weights;
66#warning "handle non polynomial rings"
68 ERROR(
"GB computation for non-polynomial rings not yet re-implemented");
77#warning "NOT QUITE!! Need to know if it is ZZ or QQ"
78#warning "unused variables commented out"
124 ERROR(
"Algorithm => Test has been removed from M2");
142 max_reduction_count);
214 ERROR(
"Hilbert function use is not implemented for this GB algorithm");
223 "Cannot compute parallel lead terms for this kind of Groebner "
static GB_comp * create(const Matrix *m, M2_bool collect_syz, int n_rows_to_keep, M2_arrayint gb_weights, int strategy, M2_bool use_max_degree, int max_degree)
virtual Computation * set_hilbert_function(const RingElement *h)
static GBComputation * choose_gb(const Matrix *m, M2_bool collect_syz, int n_rows_to_keep, M2_arrayint gb_weights, M2_bool use_max_degree, int max_degree, int algorithm, int strategy, int numThreads, int max_reduction_count=10)
void text_out(buffer &o) const override
virtual const Matrix * get_parallel_lead_terms(M2_arrayint w)
base class for Groebner basis computations.
static GBinhom_comp * create(const Matrix *m, M2_bool collect_syz, int n_rows_to_keep, M2_arrayint gb_weights, int strategy, M2_bool use_max_degree, int max_degree)
Gaussian elimination class. To be rewritten.
Slow Hermite normal form computation over ZZ. Replace.
const Ring * get_ring() const
Abstract base for the engine's polynomial-ring hierarchy.
virtual const PolynomialRing * cast_to_PolynomialRing() const
Front-end-visible "ring element" value: an engine ring_elem paired with the Ring* that gives it meani...
static binomialGB_comp * create(const Matrix *m, M2_bool collect_syz, int n_rows_to_keep, M2_arrayint gb_weights, int strategy, M2_bool use_max_degree, int max_degree)
static gbA * create(const Matrix *m, M2_bool collect_syz, int n_rows_to_keep, M2_arrayint gb_weights, int strategy, M2_bool use_max_degree, int max_degree, int max_reduction_count)
GBProxy — legacy indirection wrapper around another GBComputation (deprecated).
GBComputation * createGBF4Interface(const Matrix *m, const std::vector< int > &weights, int strategy, int numThreads)
GBComputation * createF4GB(const Matrix *m, M2_bool collect_syz, int n_rows_to_keep, M2_arrayint gb_weights, int strategy, M2_bool use_max_degree, int max_degree, int numThreads)
GBComputation — abstract base of every Groebner-basis algorithm in the engine.
void intern_GB(GBComputation *G)
intern_* helpers that register long-lived engine objects with bdwgc finalisers.
GaussElimComputation — Gaussian elimination GB / submodule strategy over a field.
gbA — the engine's default Buchberger-style Groebner-basis algorithm.
GB_comp — Buchberger GB specialised to homogeneous input.
GBinhom_comp — Buchberger GB without the sugar heuristic, primarily for inhomogeneous input.
binomialGB_comp — Buchberger GB specialised to binomial / toric ideals.
GBWeight — packed-weight evaluator that drives S-pair selection.
HermiteComputation — Hermite normal form over ZZ, the ZZ-analogue of GaussElimComputation.
VALGRIND_MAKE_MEM_DEFINED & result(result)
Text-formatting helpers layered on buffer: bignum print, line wrapping, M2_gbTrace-gated emit.
std::vector< T > M2_arrayint_to_stdvector(M2_arrayint arr)
Conversion helpers between M2 boundary types and standard C++ containers.