Macaulay2 Engine
Loading...
Searching...
No Matches
nc-res-computation.hpp File Reference

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

ResolutionComputationcreateNCRes (const Matrix *m, int max_level, int strategy)

Detailed Description

NCResComputation — placeholder free-resolution driver for modules over a FreeAlgebraQuotient.

Note
AI-generated documentation. Verify against the source before relying on it.

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.

See also
comp-res.hpp
FreeAlgebraQuotient.hpp
NCGroebner.hpp
schreyer-resolution/res-f4-computation.hpp

Definition in file nc-res-computation.hpp.