1 #ifndef __MONOMIAL_IDEAL_CPP_ 2 #define __MONOMIAL_IDEAL_CPP_ 21 #include "monomial_ideal.hpp" 26 list<Monomial>::const_iterator ti = I.
gens.begin();
33 if (I.
hNum ==
nullptr) os << I.
hNum <<
", ";
34 else os << *(I.
hNum) <<
", ";
36 else os << *(I.
hRedNum) <<
", ";
37 if (I.
hPol ==
nullptr) os << I.
hPol <<
")";
38 else os << *(I.
hPol) <<
")";
43 const list<Monomial> & U,
const Monomial & t
49 bool redundant =
false;
51 list<Monomial>::const_iterator vi = V.begin();
58 vi != V.end() and (not tnew.
is_like(*vi))
59 and vi->divisible_by(tnew)
61 list<Monomial>::const_iterator wi = vi; ++wi;
A class for monomial ideals.
Dense_Univariate_Rational_Polynomial * hPol
the ideal's Hilbert polynomial – standard grading only
Dense_Univariate_Integer_Polynomial * hRedNum
the ideal's reduced Hilbert numerator, standard grading
bool divisible_by(const Monomial &other) const
Divisible by other?
Dense_Univariate_Integer_Polynomial * hNum
the ideal's Hilbert numerator, standard grading
Monomial colon(const Monomial &u) const
colon operator: exponents needed to make divisible by this
list< Monomial > gens
the ideal's generators
Implementation of monomials.
list< Monomial > colon_ideal_without_ideals(const list< Monomial > &U, const Monomial &t)
Computes the generators of an ideal and a new generator, given the ideal's generators. No monomial ideal machinery required.
bool is_like(const Monomial &other) const
Have same variables, same powers? Synonymous with operator==().