Macaulay2 Engine
Loading...
Searching...
No Matches
NCReduction.cpp File Reference
#include "NCAlgebras/NCReduction.hpp"
#include "NCAlgebras/FreeAlgebra.hpp"
#include "NCAlgebras/FreeMonoid.hpp"
#include "MemoryBlock.hpp"
#include "NCAlgebras/NCGroebner.hpp"
#include "NCAlgebras/Word.hpp"
#include "myalloc.hpp"
#include "ring.hpp"
#include "style.hpp"
#include <cassert>
#include <mathic/Geobucket.h>
#include <mathic/Heap.h>
#include <mathic/TourTree.h>
#include <algorithm>
#include <iostream>
#include <map>
#include <memory>
#include <queue>
#include <type_traits>
#include <vector>

Go to the source code of this file.

Classes

class  OurQueueConfiguration
 Experimental mathic::Geobucket configuration whose Entry is an int — a placeholder used by makeQueue() to exercise the geobucket machinery without involving real monomials. More...
class  OurQueueConfiguration1
 Variant of OurQueueConfiguration with deduplication enabled, used by makeQueue1(). More...
class  TrivialPolynomialHeap
 Baseline PolynomialHeap implementation that simply accumulates the pending sum in a single Poly and walks it with an iterator. More...
class  NaiveQueueConfiguration
 mathic::Geobucket configuration whose Entry is a (Monom, ring_elem) pair compared by the FreeMonoid order on the monomial component. More...
class  NaiveDedupQueueConfiguration
 Variant of NaiveQueueConfiguration with deduplication enabled: deduplicate(a, b) sums the coefficients of two equal monomials. More...
class  NaivePolynomialHeap< Queue >
class  NaiveDedupPolynomialHeap< Queue >
class  MapPolynomialHeap
 PolynomialHeap backed by a std::map<Monom, ring_elem, MonomEq>, deduplicating on insert via the map's lookup. More...
class  EntryConfig
 Comparator (and trivial hash) functor wired into the std::priority_queue inside PriorityQueuePolynomialHeap. More...
class  PriorityQueuePolynomialHeap
 PolynomialHeap backed by a std::priority_queue of (Monom, ring_elem) entries, with deduplication done lazily on lead-term extraction. More...

Functions

std::unique_ptr< mathic::Geobucket< OurQueueConfiguration > > makeQueue ()
std::unique_ptr< mathic::Geobucket< OurQueueConfiguration1 > > makeQueue1 ()
HeapType getHeapType (int strategy)
std::string getHeapName (HeapType type)
std::unique_ptr< PolynomialHeapmakePolynomialHeap (HeapType type, const FreeAlgebra &F)
void tryOutMathicCode ()