Implements PolynomialRing.
Definition at line 603 of file poly.cpp.
607{
608
609
610
612 Nterm head;
614 for (Nterm& a : f)
615 {
616 M_->to_expvector(a.monom, exp);
618 if (((d - e) % wts[v]) != 0)
619 {
620
622 ERROR(
"homogenization impossible");
625 }
626 exp[v] += (d - e) / wts[v];
627 if (
is_skew_ &&
skew_.is_skew_var(v) && exp[v] > 1)
continue;
631 M_->from_expvector(exp,
result->monom);
632 }
635
638}
exponents::Exponents exponents_t
static Exponent weight(int nvars, ConstExponents a, const std::vector< Exponent > &wts)
void sort(Nterm *&f) const
VALGRIND_MAKE_MEM_DEFINED & result(result)
const mpreal exp(const mpreal &x, mp_rnd_t r=mpreal::get_default_rnd())
#define newarray_atomic(T, len)
References ERROR, freemem(), PolynomialRing::is_skew_, PolynomialRing::K_, PolynomialRing::M_, PolynomialRing::n_vars(), new_term(), newarray_atomic, Nterm::next, PolynomialRing::nvars_, result(), PolynomialRing::skew_, sort(), and ExponentVector< int, true >::weight().
Referenced by homogenize().