13 for (
int i = 0; i < nvars; i++)
16 result += 1ul << (nvars - 1 - i);
26 for (
int i = 0; i < nvars; i++)
28 exp[nvars - i - 1] = ((mono & 1ul) ? 1 : 0);
49 for (
int i = 0; i < m->
n_cols(); i++)
52 if (v ==
nullptr)
continue;
54 for (
Nterm& f : v->coeff)
58 temp = temp +
BRP(mono);
74 for (IntermediateBasis::const_iterator it = F.begin(); it != F.end(); ++it)
77 for (monomials::const_iterator it2 = it->second.m.begin();
78 it2 != it->second.m.end();
108 ERROR(
"expected a polynomial ring");
113 ERROR(
"expected coefficient ring ZZ/2");
118 ERROR(
"expected coefficient ring ZZ/2");
124 ERROR(
"Cannot handle more than 64 variables yet");
exponents::ConstExponents const_exponents
exponents::Exponents exponents_t
Boolean (F_2-coefficient) polynomial stored as an ordered list of square-free monomials.
const Ring * get_ring() const
ring_elem elem(int i, int j) const
Mutable builder used to assemble an immutable Matrix one column (or one term) at a time.
void to_expvector(const_monomial m, exponents_t result_exp) const
monomial make_one() const
void from_expvector(const_exponents exp, monomial result) const
Engine-side commutative monomial monoid: variable names, ordering, multidegree machinery,...
const Ring * getCoefficientRing() const
virtual const Monoid * getMonoid() const
virtual ring_elem make_flat_term(const ring_elem a, const_monomial m) const =0
virtual const Ring * getCoefficients() const
Abstract base for the engine's polynomial-ring hierarchy.
virtual FreeModule * make_FreeModule() const
vec make_vec(int r, ring_elem a) const
virtual const PolynomialRing * cast_to_PolynomialRing() const
long characteristic() const
void add_to(ring_elem &f, const ring_elem &g) const
virtual bool isFinitePrimeField() const
std::map< int, BRP > IntermediateBasis
brMonomial — bit-packed Boolean-ring monomials for the Hinkelmann GB engine.
void gb(IntermediateBasis &F, int n)
brMonomial exponentsToLong(int nvars, const_exponents exp)
IntermediateBasis BRPSfromMatrix(const Matrix *m)
const Matrix * BRPStoMatrix(const PolynomialRing *P, const IntermediateBasis &F)
void longToExponents(int nvars, brMonomial mono, exponents_t exp)
const Matrix * rawGbBoolean(const Matrix *m)
VALGRIND_MAKE_MEM_DEFINED & result(result)
MatrixConstructor — the mutable builder that produces an immutable Matrix.
Matrix — the engine's immutable homomorphism F -> G between free modules.
#define newarray_atomic(T, len)
Singly linked-list node carrying one term of a polynomial-ring element.