1#ifndef __ncreduction_hpp__
2#define __ncreduction_hpp__
74 const Poly& poly) = 0;
107std::unique_ptr<PolynomialHeap>
std::unique_ptr< PolynomialHeap > makePolynomialHeap(HeapType type, const FreeAlgebra &F)
std::string getHeapName(HeapType type)
HeapType getHeapType(int strategy)
Polynomial< CoefficientRingType > Poly
Modern Monom / Polynomial value types shared by NC algebras and the refactored F4.
Free associative algebra over a coefficient ring: the non-commutative analogue of PolynomialRing.
virtual ~PolynomialHeap()
virtual void removeLeadTerm()=0
virtual std::pair< Monom, ring_elem > viewLeadTerm()=0
virtual PolynomialHeap & addPolynomial(ring_elem coeff, Word left, Word right, const Poly &poly)=0
virtual size_t getMemoryUsedInBytes()=0
virtual std::string getName() const =0
virtual PolynomialHeap & addPolynomial(const Poly &poly)=0
Abstract interface for accumulating a polynomial as a sum of (coeff, left * poly * right) contributio...
Non-owning view of a non-commutative word: [begin, end) of int variable indices.
ring_elem — the universal value type carried by every Ring* in the engine.