void ReducerPackDedup<Q>::resetReducer() { class MonomialFree { public: MonomialFree(const PolyRing& ring): mRing(ring) {} bool proceed(MultipleWithPos* entry) { entry->destroy(mRing); return true; } private: const PolyRing& mRing; }; MonomialFree freeer(mRing); mQueue.forAll(freeer); mQueue.clear(); }
void ReducerNoDedup<Q>::resetReducer() { class MonomialFree { public: MonomialFree(const PolyRing& ring): mRing(ring) {} bool proceed(NewTerm entry) { mRing.monoid().freeRaw(*entry.mono); return true; } private: const PolyRing& mRing; }; MonomialFree freeer(mRing); mQueue.forAll(freeer); mQueue.clear(); }
void TournamentReducer::resetReducer() { MonomialFree freeer(mRing); mQueue.forAll(freeer); mQueue.clear(); }