16 #ifndef polybori_groebner_red_tail_h_
17 #define polybori_groebner_red_tail_h_
34 std::vector<Polynomial> res_vec;
40 res_vec.push_back(lm);
49 std::vector<Monomial> irr;
73 res_vec.push_back(irr_p);
83 p=
nf3(strat,p, rest_lead);
95 template <
class Helper>
102 std::vector<Polynomial> res_vec;
108 res_vec.push_back(lm);
121 std::vector<Monomial> irr;
122 typename Helper::iterator_type it=Helper::begin(p);
123 typename Helper::iterator_type it_orig=it;
124 typename Helper::iterator_type end=Helper::end(p);
125 bool rest_is_irreducible=
false;
131 if (!(irreducible_part.
isZero())){
132 res_vec.push_back(irreducible_part);
134 it=Helper::begin(p2);
142 rest_is_irreducible=
true;
151 rest_is_irreducible=
true;
159 irr_p=Helper::sum_range(irr,it_orig,it, p.
ring().
zero());
167 PBORI_ASSERT((s==irr_p.length())||(rest_is_irreducible));
169 res_vec.push_back(irr_p);
173 p=Helper::nf(strat,p,rest_lead);
188 return red_tail_generic<LexHelper>(strat,p);
190 return red_tail_generic<DegOrderHelper>(strat,p);
192 return red_tail_generic<BlockOrderHelper>(strat,p);