Macaulay2 Engine
Loading...
Searching...
No Matches
GBF4Interface.hpp File Reference

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 Matrixnewf4::toMatrix (const FreeModule *target, const PolynomialList &Fs)

Detailed Description

Legacy-to-new-F4 adapter exposing GBF4Computation through the engine's GBComputation API.

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

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.

See also
GBF4Computation.hpp
PolynomialList.hpp
comp-gb.hpp
matrix-stream.hpp

Definition in file GBF4Interface.hpp.