Macaulay2 Engine
Loading...
Searching...
No Matches
GBF4Computation.cpp
Go to the documentation of this file.
1#include "GBF4Interface.hpp"
2#include "GBF4Computation.hpp"
4#include <iostream>
5
6namespace newf4 {
7
9 const VectorArithmetic& vectorArithmetic,
10 const FreeModule* freeModule,
11 const std::vector<int>& variableWeights,
12 Strategy strategy)
14 mInput(vectorArithmetic, mBasisMonomials),
15 mGBSoFar(vectorArithmetic, mBasisMonomials),
16 mFreeModule(freeModule),
19 mSPairs(),
20 mVectorArithmetic(vectorArithmetic),
22 mVariableWeights(variableWeights)
23{
24 (void) strategy;
25}
26
28{
29 PolynomialListStreamCollector S(mVectorArithmetic.ring()->characteristic(),
30 mVariableWeights.size(), // TODO: is this correct?
31 1, // TODO: is this correct??
32 mInput);
33 matrixToStream(M,S);
34}
35
37{
38 PolynomialListStreamCollector S(mVectorArithmetic.ring()->characteristic(),
39 mVariableWeights.size(), // TODO: is this correct?
40 1, // TODO: is this correct??
41 mInput);
42 toStream(basicPolyList,S);
43}
44
46{
47 std::cout << "Number of monomials: " << mBasisMonomials.size() << std::endl;
48 mBasisMonomials.dump();
49}
50
52{
53 const Matrix* M = toMatrix(mFreeModule, mInput);
54 buffer o;
55 M->text_out(o);
56 std::cout << "--- Input Polynomials ---" << std::endl;
57 std::cout << o.str() << std::endl;
58}
59
61{
62 auto gbStatus = mGBSoFar.getGBStatusList();
63 std::cout << "--- GB Status Array ---" << std::endl;
64 for (auto i = 0; i < gbStatus.size(); ++i)
65 {
66 std::cout << i << ": " << toString(gbStatus[i]) << std::endl;
67 }
68}
69
70} // end namespace newf4
71
72// Local Variables:
73// indent-tabs-mode: nil
74// End:
std::vector< BasicPoly > BasicPolyList
newf4::GBF4Computation — top-level driver for the refactored F4 Gröbner-basis engine.
Legacy-to-new-F4 adapter exposing GBF4Computation through the engine's GBComputation API.
Engine-side free module R^n over a Ring.
Definition freemod.hpp:66
void text_out(buffer &o) const
Definition matrix.cpp:1316
Runtime dispatcher that hides the concrete coefficient ring behind a std::variant of ConcreteVectorAr...
char * str()
Definition buffer.hpp:72
MonomialLookupTable mMonomialLookup
MonomialHashTable mBasisMonomials
void initializeWithMatrix(const Matrix *M)
std::vector< int > mVariableWeights
void initializeWithBasicPolyList(const BasicPolyList &basicPolyList)
GBF4Computation(const VectorArithmetic &vectorArithmetic, const FreeModule *freeModule, const std::vector< int > &variableWeights, Strategy strategy)
MacaulayMatrix mMacaulayMatrix
const FreeModule * mFreeModule
const VectorArithmetic & mVectorArithmetic
MonomialHashTable mSPairMonomials
implements the stream functions for creating a PolynomialList from a stream
#define Matrix
Definition factory.cpp:14
void matrixToStream(const Matrix *M, T &stream)
MatrixStream — term-by-term streaming construction of a Matrix.
std::string toString(GBPolyStatus status)
Definition Basis.hpp:48
void toStream(const PolynomialList &Fs, S &str)
const Matrix * toMatrix(const FreeModule *target, const PolynomialList &Fs)