70{
71 size_t n_spairs = 0;
73 {
75 auto toBeProcessed = degSet.second;
77 {
78 buffer o;
79 o <<
"[" << degSet.first <<
"](" << toBeProcessed->
size() <<
")";
81 }
82 while(!toBeProcessed->empty())
83 {
84 auto overlap = toBeProcessed->front();
85
86
88 {
89 toBeProcessed->pop_front();
91 {
92 std::cout << "Reduction avoided using 2nd criterion." << std::endl;
93 std::cout << "table after pop:";
95 }
96
97 continue;
98 }
100
101 n_spairs++;
103 delete overlapPoly;
104
106 {
110 }
111 else
112 {
113
115 {
116 std::cout << "Overlap " << overlap << " reduced to zero."
117 << std::endl;
118 }
119 }
120 toBeProcessed->pop_front();
121 }
122
124 }
126 {
127 buffer o;
128 o << "[NCGB] number of spair reductions: " << n_spairs;
130 }
131}
auto twoSidedReduction(const ConstPolyList &reducees) const -> ConstPolyList
void updateOverlaps(const Poly *toAdd)
void autoreduceByLastElement()
auto isOverlapNecessary(Overlap o) const -> bool
OverlapTable mOverlapTable
static auto createOverlapPoly(const FreeAlgebra &A, const PolyList &polyList, int polyIndex1, int polyIndex2, int overlapIndex) -> Poly *
const FreeAlgebra & freeAlgebra() const
void addToGroebnerBasis(Poly *toAdd)
void emit_line(const char *s)