16 #ifndef polybori_groebner_RelatedTermsBase_h_
17 #define polybori_groebner_RelatedTermsBase_h_
37 m_lead(ring), m_ignorable(ring), m_ext_prod_terms(ring),
38 m_related(ring), m_divisors_of(ring, ring) { }
43 m_lead(lead), m_ignorable(ignorable), m_ext_prod_terms(lead.ring()),
44 m_related(lead.ring()), m_divisors_of(lead, significant) {
46 init(significant, unrelated_terms(significant));
63 return mod_mon_set(m_related.intersect(terms), m_ignorable);
68 return std::accumulate(m_lead.begin(), m_lead.end(), terms,
76 m_related = significant.diff(unrelated);
77 m_ext_prod_terms = m_ignorable.
existAbstract(m_lead).diff(unrelated);
85 BoundedDivisorsOf m_divisors_of;