|
Macaulay2 Engine
|
Legacy-to-new-F4 adapter exposing GBF4Computation through the engine's GBComputation API. More...
#include "BasicPolyList.hpp"#include "GBF4Computation.hpp"#include "PolynomialList.hpp"#include "../e/comp-gb.hpp"#include "../matrix-stream.hpp"Go to the source code of this file.
Classes | |
| class | newf4::GBF4Interface |
Namespaces | |
| namespace | newf4 |
Enumerations | |
| enum class | newf4::Strategy { newf4::Normal } |
Functions | |
| auto | createGBF4Interface (const Matrix *inputMatrix, const std::vector< int > &variableWeights, int strategy, int numThreads) -> GBComputation * |
| auto | newf4::createGBF4Interface (const Matrix *inputMatrix, const std::vector< int > &variableWeights, Strategy strategy, int numThreads) -> GBComputation * |
| void | newf4::populateComputation (const Matrix *M, GBF4Computation &C) |
| const Matrix * | newf4::toMatrix (const FreeModule *target, const PolynomialList &Fs) |
Legacy-to-new-F4 adapter exposing GBF4Computation through the engine's GBComputation API.
Declares the GBComputation subclass the M2 interpreter sees plus two createGBF4Interface factory overloads (one at global scope taking int strategy, one in namespace newf4 taking Strategy strategy) and the populateComputation(const Matrix*, GBF4Computation&) helper. GBF4Interface holds borrowed pointers to the PolynomialRing and FreeModule, plus owning unique_ptr<VectorArithmetic> and unique_ptr<GBF4Computation> members carrying the algorithm state. Two constructors cover ingestion from a legacy Matrix or from a BasicPolyList — the latter being the representation produced by BasicPolyListParser from the MSolve text format and similar engine-neutral inputs.
This adapter is currently a non-functional placeholder: start_computation() has an empty body, and every GBComputation reporter override (get_gb, get_mingens, get_change, get_syzygies, get_initial, matrix_remainder, matrix_lift, set_hilbert_function, contains) currently returns nullptr, false, or 0. The embedded GBF4Computation likewise has no GB-construction methods yet — ingestion is the only live path. Separating "interface" from "computation" is the eventual design so the templated core stays free of Matrix / Computation glue. The toMatrix helper at the bottom converts a PolynomialList back through MatrixStream for show* paths and is the one piece that is wired up.
Definition in file GBF4Interface.hpp.