1#ifndef _OverlapTable_hpp_
2#define _OverlapTable_hpp_
56using Overlap = std::tuple<int,int,int,bool>;
58using OverlapMap = std::map<std::pair<int,bool>,std::deque<Overlap>>;
97 auto
size() const ->
size_t;
106 auto dump(std::ostream& ostr,
bool outputDeques)
const -> std::ostream&;
std::tuple< int, int, int, bool > Overlap
std::map< std::pair< int, bool >, std::deque< Overlap > > OverlapMap
std::ostream & operator<<(std::ostream &ostr, const OverlapTable &overlapTable)
gc_vector< const Poly * > ConstPolyList
Modern Monom / Polynomial value types shared by NC algebras and the refactored F4.
OverlapTable(ConstPolyList *polyList)
auto insert(int deg, bool isGenerator, Overlap o) -> void
auto isFinished() const -> bool
auto dump(std::ostream &ostr, bool outputDeques) const -> std::ostream &
auto overlapWordLength(Overlap o) const -> int
auto removeLowestDegree() -> void
ConstPolyList * mPolyList
friend std::ostream & operator<<(std::ostream &ostr, const OverlapTable &overlapTable)
auto size() const -> size_t
auto nextDegreeOverlaps() -> std::pair< int, std::deque< Overlap > * >
OverlapMap & overlapMap()
Per-degree FIFO queue of pending overlaps for the NC Groebner basis driver to process.