44 const long *
part(
int i)
const
54 long value(
int i,
long *monom)
const;
66 :
R(G0->get_gb_ring()),
67 F(G0->get_ambient_FreeModule()),
80 (void) gb_under_order1;
88 return new GBWalker(gb_under_order1, order1);
106 for (
int i = 0; i <
R->n_vars(); i++) weights->array[i] = 1;
163 if (
stop_.always_stop)
return;
165 for (;;)
switch (
state)
175 inwwG =
G->get_parallel_lead_terms(
ww);
192 H =
G->matrix_remainder(
269 const Matrix **result_remainder,
270 const Matrix **result_quotient)
274 *result_remainder =
nullptr;
275 *result_quotient =
nullptr;
276 ERROR(
"rawGBMatrixLift not implemented for GB walks");
Computation * set_stop_conditions(M2_bool always_stop, M2_arrayint degree_limit, int basis_element_limit, int syzygy_limit, int pair_limit, int codim_limit, int subring_limit, M2_bool just_min_gens, M2_arrayint length_limit)
enum ComputationStatusCode set_status(enum ComputationStatusCode)
Abstract base for long-running, resumable engine computations (GBComputation, ResolutionComputation,...
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)
static GBComputation * create(const Matrix *m, const Matrix *gb, const Matrix *change, const Matrix *syz)
virtual void show() const
virtual int complete_thru_degree() const
GBComputation * make_gb(const Matrix *M) const
virtual const Matrix * get_initial(int nparts)
virtual const Matrix * get_mingens()
virtual const Matrix * get_parallel_lead_terms(M2_arrayint w)
virtual const Matrix * get_change()
virtual bool stop_conditions_ok()
virtual const Matrix * get_syzygies()
GBWalker(const Matrix *gb_under_order1, const MonomialOrdering *order1)
virtual M2_bool matrix_lift(const Matrix *m, const Matrix **result_remainder, const Matrix **result_quotient)
virtual void text_out(buffer &o) const
enum GBWalker::@204216357340354175217111063216361047022355062066 state
virtual int contains(const Matrix *m)
virtual const Matrix * matrix_remainder(const Matrix *m)
virtual const Matrix * get_gb()
static GBWalker * create(MarkedGB *G0, long **order1, long **order2)
virtual const PolynomialRing * get_ring() const
virtual Computation * set_hilbert_function(const RingElement *h)
virtual void start_computation()
Computation of a reduced GB w.r.t. a marked ordering.
MonomialOrderMatrix(const MonomialOrdering *mo)
MonomialOrdering * toMonomialOrdering() const
long value(int i, long *monom) const
int compare(long *m1, long *m2) const
const long * part(int i) const
int minpart(long *m) const
int facet_compare(long *mon1, long *mon2)
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...
GBDeclared — a user-asserted Groebner basis the engine accepts without computing.
ComputationStatusCode / StopConditions / StrategyValues / Algorithms / gbTraceValues — engine-to-inte...
Engine error-reporting primitives: ERROR, INTERNAL_ERROR, error, error_message.
GBWalker — generic Groebner-walk strategy that transports a basis between term orders.
GBRing and gbvector — the GB-tuned polynomial-ring view used by classical Buchberger code.
M2_arrayint M2_makearrayint(int n)
Engine-boundary C API for assembling block-level MonomialOrderings from declarative pieces.
Front-end-side description of a monomial ordering as a list of mon_part blocks.