|
Macaulay2 Engine
|
NCResComputation — placeholder free-resolution driver for modules over a FreeAlgebraQuotient. More...
#include "comp-res.hpp"#include "NCAlgebras/FreeAlgebraQuotient.hpp"#include "matrix.hpp"#include "matrix-con.hpp"Go to the source code of this file.
Classes | |
| class | NCResComputation |
| ResolutionComputation subclass that builds a free resolution over a FreeAlgebraQuotient (non-commutative). More... | |
Functions | |
| ResolutionComputation * | createNCRes (const Matrix *m, int max_level, int strategy) |
NCResComputation — placeholder free-resolution driver for modules over a FreeAlgebraQuotient.
Declares the intended non-commutative counterpart of F4ResComputation: a ResolutionComputation subclass that will compute a free resolution of a right module presented by its Gröbner basis over a FreeAlgebraQuotient ring. The constructor is private; the friend factory createNCRes(groebnerBasisMatrix, max_level, strategy) is the only entry point, and the input matrix is expected to be a (partial) GB of the module being resolved.
This adapter is currently a non-functional placeholder. stop_conditions_ok() unconditionally returns true, start_computation() just prints "Starting computation." to std::cout, complete_thru_degree() returns 0, get_betti and the MutableMatrix-shaped get_matrix return nullptr, the Matrix-shaped get_matrix(level) returns either the input module's GB at level 1 or an empty MatrixConstructor matrix elsewhere, text_out emits the fixed string "Noncommutative resolution", and even the stored fields (mInputModuleGB; commented-out mRing / mMaxLevel) reflect the unfinished plumbing. The companion nc-res-computation.cpp is 30 lines and only defines the constructor plus createNCRes.
The expected per-level loop is sketched in the long comment block at the bottom of the header: build levels 0 / 1 from the input module, fill in syzygies degree-by-degree using F4-style overlap reduction against both the ring's GB and the earlier-level frame, and store each (free module, differential) pair as the resolution grows. The #if 0 block sketches NCSchreyerResolution / Level / Element / ModulePoly types the implementation is expected to grow into; NCResolutions/notes.txt tracks the still-open design questions.
Definition in file nc-res-computation.hpp.