184 virtual int kind() {
return 232; }
203 const Matrix **result_remainder,
204 const Matrix **result_quotient);
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 ...
void find_pairs(gb_elem *p)
void inter_reduce(gb_elem *&gens)
void add_gens(int lo, int hi, const Matrix *m)
virtual const Matrix * get_syzygies()
int compare(const gb_elem *p, const gb_elem *q) const
virtual M2_bool matrix_lift(const Matrix *m, const Matrix **result_remainder, const Matrix **result_quotient)
int mark_pair(gb_elem *p, gb_elem *q) const
Matrix * min_gens_matrix()
virtual const Matrix * matrix_remainder(const Matrix *m)
virtual int contains(const Matrix *m)
void gb_insert(gbvector *f, gbvector *fsyz, int minlevel)
virtual void text_out(buffer &o) const
virtual int complete_thru_degree() const
void compute_s_pair(s_pair *p)
s_pair * new_ring_pair(gb_elem *p, const int *lcm)
virtual const Matrix * get_initial(int nparts)
void debug_pairs_out(gb_elem *p) const
int gb_geo_reduce(gbvector *&f, gbvector *&fsyz)
int gb_reduce(gbvector *&f, gbvector *&fsyz)
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)
GBinhom_comp(const Matrix *m, int collect_syz, int n_syz, M2_arrayint gb_weights, int strategy)
virtual const PolynomialRing * get_ring() const
virtual const Matrix * get_parallel_lead_terms(M2_arrayint w)
int calc(const int *deg, const gc_vector< int > &stop_conditions)
void set_up(const Matrix *m, int csyz, int nsyz, M2_arrayint gb_weights, int strategy)
virtual const Matrix * get_change()
VECTOR(MonomialIdeal *) monideals
void remove_pair(s_pair *&p)
s_pair * new_s_pair(gb_elem *p, gb_elem *q, const int *lcm)
virtual const Matrix * get_gb()
s_pair * new_var_pair(gb_elem *p, const int *lcm)
int search(const int *exp, int comp, gb_elem *&result)
virtual const Matrix * get_mingens()
void debug_out(s_pair *q) const
virtual bool stop_conditions_ok()
ComputationStatusCode computation_complete() const
int s_pair_step(s_pair *p)
Matrix * reduce(const Matrix *m, Matrix *&lift)
void set_up0(const Matrix *m, int csyz, int nsyz, M2_arrayint gb_weights)
const PolynomialRing * originalR
s_pair * new_gen(int i, gbvector *f, ring_elem denom)
Matrix * initial_matrix(int n)
A Groebner basis computation class for inhomogeneous input modules.
Mutable builder used to assemble an immutable Matrix one column (or one term) at a time.
Engine-side commutative monomial monoid: variable names, ordering, multidegree machinery,...
Engine-side monomial ideal: a decision tree of Nmi_nodes storing the (typically minimal) generators b...
Abstract base for the engine's polynomial-ring hierarchy.
Base class for reduced Groebner basis computation.
GBComputation — abstract base of every Groebner-basis algorithm in the engine.
VALGRIND_MAKE_MEM_DEFINED & result(result)
MatrixConstructor — the mutable builder that produces an immutable Matrix.
Matrix — the engine's immutable homomorphism F -> G between free modules.
typename std::vector< T, gc_allocator< T > > gc_vector
a version of the STL vector, which allocates its backing memory with gc.
PolynomialRing — abstract polynomial-ring base, the engine's most-reused class.
ReducedGB — abstract base for the canonicalising reduction pass that follows GB computation.
RingElement — tagged (Ring*, ring_elem) pair, the engine's universal element type.
gb_elem / s_pair / s_pair_heap — basis-element record, S-pair work unit, and S-pair priority queue fo...