Macaulay2 Engine
Loading...
Searching...
No Matches

◆ value()

template<template< typename > class Queue>
Poly * NaivePolynomialHeap< Queue >::value ( )
inlineoverridevirtual

Implements PolynomialHeap.

Definition at line 475 of file NCReduction.cpp.

476 {
477 Poly* f = new Poly;
478 if (mLeadTermSet)
479 mQueue.push(mLeadTerm);
480 mLeadTermSet = false;
481 while (not isZero())
482 {
483 auto tm = viewLeadTerm();
484 mRing.add_to_end(*f, tm.second, tm.first);
486 }
488 return f;
489 }
bool isZero() override
Queue< NaiveQueueConfiguration > mQueue
std::pair< Monom, ring_elem > mLeadTerm
NaivePolynomialHeap & addPolynomial(const Poly &poly) override
std::pair< Monom, ring_elem > viewLeadTerm() override
void removeLeadTerm() override

References addPolynomial(), isZero(), mLeadTerm, mLeadTermSet, mQueue, mRing, removeLeadTerm(), and viewLeadTerm().