13#define STATE_NEW_DEGREE 1
106 virtual void stats()
const;
261 void setup(
const Matrix *m,
int length,
int origsyz,
int strategy);
Engine-side free module R^n over a Ring.
Polynomial-ring view tuned for the inner loop of classical Buchberger Groebner-basis computations.
Engine-side commutative monomial monoid: variable names, ordering, multidegree machinery,...
Abstract base for the engine's polynomial-ring hierarchy.
Front-end-visible "ring element" value: an engine ring_elem paired with the Ring* that gives it meani...
s_pair * new_ring_pair(gb_elem *p, const int *lcm)
void setup(FreeModule *Fsyz, stash *mi_stash, gb_node *gens, int lodegree, int origsyz, int level, int strategy)
Matrix * initial_matrix(int n)
gc_vector< int > total_pairs
void gb_insert(gbvector *f, gbvector *fsyz, int ismin)
enum ComputationStatusCode calc_gens(int deg)
enum ComputationStatusCode calc_gb(int deg)
void gb_sort(int lo, int hi)
void remove_pair(s_pair *&p)
const FreeModule * output_free_module() const
Matrix * min_gens_matrix()
virtual void text_out(buffer &o) const
Matrix * make_lead_term_matrix()
void find_pairs(gb_elem *p)
void debug_out(s_pair *q) const
void gb_geo_reduce(gbvector *&f, gbvector *&fsyz)
void schreyer_append(gbvector *f)
gb2_comp(FreeModule *Fsyz, stash *mi_stash, gb_node *gens, int lodegree, int orig_syz, int level, int strategy)
virtual void set_output(gb_node *p)
VECTOR(monideal_pair *) monideals
void gb_reduce(gbvector *&f, gbvector *&fsyz)
const PolynomialRing * originalR
virtual RingElement * hilbertNumerator()
void compute_s_pair(s_pair *p)
int gb_sort_partition(int lo, int hi)
bool receive_generator(gbvector *f, int n, const ring_elem denom)
virtual void reduce(gbvector *&f, gbvector *&fsyz)
s_pair * new_s_pair(gb_elem *p, gb_elem *q, const int *lcm)
int start_degree(int deg)
virtual void set_output(gb_node *gg)
virtual void text_out(buffer &o) const
virtual Matrix * min_gens_matrix()
virtual Matrix * get_matrix()
virtual const FreeModule * output_free_module() const
gb_emitter(const Matrix *m)
virtual int n_gb_elems() const
virtual Matrix * gb_matrix()
virtual enum ComputationStatusCode calc_gens(int degree)
virtual RingElement * hilbertNumerator()
virtual Matrix * initial_matrix(int)
virtual void reduce(gbvector *&, gbvector *&)
virtual bool receive_generator(gbvector *, int, const ring_elem)
virtual Matrix * change_matrix()
virtual enum ComputationStatusCode calc_gb(int degree)
virtual void stats() const
const PolynomialRing * originalR
virtual RingElement * hilbertNumerator()=0
virtual enum ComputationStatusCode calc_gb(int degree)=0
virtual Matrix * initial_matrix(int n)=0
virtual bool receive_generator(gbvector *f, int n, const ring_elem denom)=0
virtual Matrix * min_gens_matrix()=0
virtual void stats() const =0
virtual enum ComputationStatusCode calc_gens(int degree)=0
virtual Matrix * gb_matrix()=0
virtual Matrix * change_matrix()=0
virtual int n_gb_elems() const =0
virtual void text_out(buffer &o) const =0
virtual const FreeModule * output_free_module() const =0
virtual void set_output(gb_node *p)=0
virtual Matrix * get_matrix()=0
virtual void reduce(gbvector *&f, gbvector *&fsyz)=0
gbres_comp(const Matrix *m, int length, int orig_syz, int strategy)
const Matrix * change_matrix(int level)
const Matrix * get_matrix(int level)
void text_out(buffer &o) const
M2_arrayint get_betti(int type) const
const FreeModule * free_module(int level) const
const Matrix * min_gens_matrix(int level)
bool stop_conditions_ok()
void setup(const Matrix *m, int length, int origsyz, int strategy)
const PolynomialRing * originalR
Matrix * reduce(const Matrix *m, Matrix *&lift)
M2_arrayint betti_minimal() const
const Matrix * gb_matrix(int level)
const Matrix * initial_matrix(int n, int level)
int complete_thru_degree() const
int last_completed_degree
const FreeModule * get_free(int level)
ResolutionComputation — abstract base for every free-resolution algorithm in the engine.
void gb(IntermediateBasis &F, int n)
Hilbert-series numerator via the Bigatti-Caboara-Robbiano recursion.
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.
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...