22 result->initialize_poly_ring(K, M);
23 if (!
result->initialize_solvable(Q))
return nullptr;
63#warning "implement SolvableAlgebra::mult_by_term"
72 return power(f, n1.second);
static GBRing * create_SolvableAlgebra(const Ring *K0, const Monoid *M0, const SolvableAlgebra *R)
Engine-side commutative monomial monoid: variable names, ordering, multidegree machinery,...
virtual const Monoid * getMonoid() const
virtual const Ring * getCoefficients() const
virtual ring_elem power(const ring_elem f, mpz_srcptr n) const
Exponentiation. This is the default function, if a class doesn't define this.
static std::pair< bool, int > get_si(mpz_srcptr n)
static SolvableAlgebra * create(const Ring *K, const Monoid *M, const Matrix *Q)
bool initialize_solvable(const Matrix *Q)
virtual ring_elem mult_by_term(const ring_elem f, const ring_elem c, const int *m) const
virtual ring_elem power(const ring_elem f, mpz_srcptr n) const
Exponentiation. This is the default function, if a class doesn't define this.
virtual ~SolvableAlgebra()
GBRing and gbvector — the GB-tuned polynomial-ring view used by classical Buchberger code.
VALGRIND_MAKE_MEM_DEFINED & result(result)
SolvableAlgebra — scaffolding for a PBW algebra x_j x_i = x_i x_j + q_{ij} (multiplication unimplemen...