Macaulay2 Engine
Loading...
Searching...
No Matches

◆ rawGbBoolean()

const Matrix * rawGbBoolean ( const Matrix * m)

Definition at line 100 of file franzi-interface.cpp.

101{
103 // cout << "first BRP in F " << F.begin()->second << endl;
104 const Ring *R = m->get_ring();
106 if (P == nullptr)
107 {
108 ERROR("expected a polynomial ring");
109 return nullptr;
110 }
111 if (P->characteristic() != 2)
112 {
113 ERROR("expected coefficient ring ZZ/2");
114 return nullptr;
115 }
117 {
118 ERROR("expected coefficient ring ZZ/2");
119 return nullptr;
120 }
121 int n = P->n_vars();
122 if (n > 64)
123 {
124 ERROR("Cannot handle more than 64 variables yet");
125 return nullptr;
126 }
127 gb(F, n);
128 // cout << "first BRP in F after gb() " << F.begin()->second << endl;
129 return BRPStoMatrix(P, F);
130}
const Ring * get_ring() const
Definition matrix.hpp:134
const Ring * getCoefficientRing() const
Definition polyring.hpp:200
int n_vars() const
Definition polyring.hpp:196
Abstract base for the engine's polynomial-ring hierarchy.
Definition polyring.hpp:96
virtual const PolynomialRing * cast_to_PolynomialRing() const
Definition ring.hpp:243
long characteristic() const
Definition ring.hpp:159
virtual bool isFinitePrimeField() const
Definition ring.hpp:169
xxx xxx xxx
Definition ring.hpp:102
std::map< int, BRP > IntermediateBasis
void gb(IntermediateBasis &F, int n)
IntermediateBasis BRPSfromMatrix(const Matrix *m)
const Matrix * BRPStoMatrix(const PolynomialRing *P, const IntermediateBasis &F)
const int ERROR
Definition m2-mem.cpp:55

References BRPSfromMatrix(), BRPStoMatrix(), Ring::cast_to_PolynomialRing(), Ring::characteristic(), ERROR, gb(), Matrix::get_ring(), PolynomialRing::getCoefficientRing(), Ring::isFinitePrimeField(), Matrix, and PolynomialRing::n_vars().