|
Macaulay2 Engine
|
Abstract interface for accumulating a polynomial as a sum of (coeff, left * poly * right) contributions in the free algebra. More...
#include <NCReduction.hpp>
Public Member Functions | |
| virtual | ~PolynomialHeap () |
| virtual PolynomialHeap & | addPolynomial (const Poly &poly)=0 |
| virtual PolynomialHeap & | addPolynomial (ring_elem coeff, Word left, Word right, const Poly &poly)=0 |
| virtual bool | isZero ()=0 |
| virtual std::pair< Monom, ring_elem > | viewLeadTerm ()=0 |
| virtual void | removeLeadTerm ()=0 |
| virtual Poly * | value ()=0 |
| virtual size_t | getMemoryUsedInBytes ()=0 |
| virtual void | clear ()=0 |
| virtual std::string | getName () const =0 |
Additional Inherited Members | |
| Static Public Member Functions inherited from our_new_delete | |
| static void * | operator new (size_t size) |
| static void * | operator new[] (size_t size) |
| static void | operator delete (void *obj) |
| static void | operator delete[] (void *obj) |
| static void * | operator new (size_t size, void *existing_memory) |
| static void * | operator new[] (size_t size, void *existing_memory) |
| static void | operator delete (void *obj, void *existing_memory) |
| static void | operator delete[] (void *obj, void *existing_memory) |
Abstract interface for accumulating a polynomial as a sum of (coeff, left * poly * right) contributions in the free algebra.
The standard "geobucket"-shaped API used by NCGroebner / NCF4 reduction loops: addPolynomial slots a new contribution in, isZero collapses the heap until either a non-zero lead term is available or the heap is genuinely empty, viewLeadTerm / removeLeadTerm walk the result, and value() materialises everything into a Poly. Concrete subclasses (TrivialPolynomialHeap, MapPolynomialHeap, PriorityQueuePolynomialHeap, the geobucket-backed NaivePolynomialHeap<Queue>) live in NCReduction.cpp and make different storage / deduplication trade-offs.
Definition at line 64 of file NCReduction.hpp.