3#ifndef _nc_res_computation_hpp_
4#define _nc_res_computation_hpp_
75 const Matrix& gbIdealMatrix,
94 std::cout <<
"Starting computation." << std::endl;
108 (void) slanted_degree;
127 o <<
"Noncommutative resolution";
140class NCSchreyerResolution
143 std::vector<Level> mLevels;
145 std::unordered_set<Monom> mAllMonomials;
150 std::vector<Element> mElements;
164 ElementArray mElementArray;
165 std::vector<int> mComponents;
166 std::vector<int> mMonomials;
A FreeAlgebra modulo a two-sided ideal carried by an embedded NCGroebner.
Quotient of a FreeAlgebra by a Groebner basis up to a fixed degree bound.
Engine-side free module R^n over a Ring.
Mutable builder used to assemble an immutable Matrix one column (or one term) at a time.
Thin RAII wrapper around memtailor::Arena providing bump-pointer array allocation with optional mutex...
Abstract base class for mutable matrices over an arbitrary engine Ring, the in-place counterpart of t...
int complete_thru_degree() const
void text_out(buffer &o) const
const Matrix & mInputModuleGB
const Matrix * get_matrix(int level)
const FreeModule * get_free(int level)
MutableMatrix * get_matrix(int slanted_degree, int level)
friend ResolutionComputation * createNCRes(const Matrix *groebnerBasisMatrix, int max_level, int strategy)
M2_arrayint get_betti(int type) const
bool stop_conditions_ok()
NCResComputation(const FreeAlgebraQuotient &ring, const Matrix &gbIdealMatrix, int max_level)
virtual ~NCResComputation()
Base class for free resolution computation classes.
ResolutionComputation — abstract base for every free-resolution algorithm in the engine.
MatrixConstructor — the mutable builder that produces an immutable Matrix.
Matrix — the engine's immutable homomorphism F -> G between free modules.
ResolutionComputation * createNCRes(const Matrix *m, int max_level, int strategy)