Definition at line 25 of file f4-computation.cpp.
33{
35 if (R == nullptr)
36 {
37 ERROR(
"internal error: expected a polynomial ring for `Algorithm => LinearAlgebra` groebner basis");
38 return nullptr;
39 }
41
42
44 {
45 ERROR(
"expected commutative polynomial ring for `Algorithm => LinearAlgebra` groebner basis");
46 return nullptr;
47 }
49 {
50 ERROR(
"can't use quotient polynomial rings with `Algorithm => LinearAlgebra` groebner basis");
51 return nullptr;
52 }
54 {
55 ERROR(
"expected homogeneous input for `Algorithm => LinearAlgebra` groebner basis");
56 return nullptr;
57 }
59 {
60 ERROR(
"expected coefficient ring to be a finite field for `Algorithm => LinearAlgebra` groebner basis");
61 return nullptr;
62 }
64
66 m,
67 collect_syz,
68 n_rows_to_keep,
69 gb_weights,
70 strategy,
71 use_max_degree,
72 max_degree,
73 numThreads);
74}
GBComputation subclass that drives an F4GB engine instance from the engine-side computation API.
const Ring * get_ring() const
bool is_homogeneous() const
virtual bool is_commutative_ring() const
bool is_quotient_ring() const
virtual const Ring * getCoefficients() const
Abstract base for the engine's polynomial-ring hierarchy.
virtual bool isGaloisField() const
virtual const PolynomialRing * cast_to_PolynomialRing() const
virtual bool isFinitePrimeField() const
Runtime dispatcher that hides the concrete coefficient ring behind a std::variant of ConcreteVectorAr...
References Ring::cast_to_PolynomialRing(), ERROR, Matrix::get_ring(), Ring::is_commutative_ring(), Matrix::is_homogeneous(), Ring::is_quotient_ring(), Ring::isFinitePrimeField(), Ring::isGaloisField(), Matrix, and RingElement::R.
Referenced by GBComputation::choose_gb().