11 std::cout <<
"overlapTable: inserting deg="
13 <<
" isGenerator=" << isGenerator
17 std::deque<Overlap> emptyDeque;
18 auto ret =
mOverlapMap.insert(std::make_pair(std::make_pair(deg,isGenerator),
23 (ret.first)->second.push_back(o);
37 return (beginIter->first.first > topDegree);
46 if (iter ==
mOverlapMap.end())
return std::make_pair(-1,
nullptr);
47 return std::make_pair(iter->first.first, &(iter->second));
55 sum += i.second.size();
69 o <<
"[" << std::get<0>(a) <<
","
70 << std::get<1>(a) <<
","
71 << std::get<2>(a) <<
"]";
75std::ostream&
operator<<(std::ostream& o,
const std::deque<Overlap>& val)
83 if (count % 10 == 0) o << std::endl;
90 ostr <<
"OverlapTable with " <<
size() <<
" elements:" << std::endl;
94 ostr <<
" Degree [" << i.first.first
95 <<
"," << i.first.second <<
"] # = " << i.second.size() << std::endl;
97 ostr <<
" Degree [" << i.first.first
98 <<
"," << i.first.second <<
"] # = " << i.second << std::endl;
106 return overlapTable.
dump(ostr,
false);
auto operator<<(std::ostream &o, Overlap &a) -> std::ostream &
std::tuple< int, int, int, bool > Overlap
OverlapTable — degree-sorted queue of pending word overlaps for non-commutative GB drivers.
auto insert(int deg, bool isGenerator, Overlap o) -> void
auto isFinished() const -> bool
auto dump(std::ostream &ostr, bool outputDeques) const -> std::ostream &
auto removeLowestDegree() -> void
auto size() const -> size_t
auto nextDegreeOverlaps() -> std::pair< int, std::deque< Overlap > * >
Engine-to-interpreter type vocabulary across the C++ / .dd boundary.