3 #include "../MultivariatePolynomial.h"
4 #include "../UnivariatePolynomial.h"
21 newExps.emplace_back(it.first,
uint(it.second *
exp));
22 expsum += newExps.back().second;
27 if (m ==
nullptr)
return nullptr;
31 template<
typename Coeff>
40 template<
typename C,
typename O,
typename P>
46 if (
exp == 2)
return p*p;
56 template<
typename C,
typename O,
typename P>
64 for (std::size_t i = 1; i <
exp; i++) {
76 template<
typename Coeff>
83 if ((
exp & 1) != 0) res *= mult;
85 if(
exp > 0) mult = mult * mult;
#define CARL_LOG_INEFFICIENT()
carl is the main namespace for the library.
Monomial::Arg createMonomial(T &&... t)
Interval< Number > exp(const Interval< Number > &i)
bool is_zero(const Interval< Number > &i)
Check if this interval is a point-interval containing 0.
MultivariatePolynomial< C, O, P > pow_naive(const MultivariatePolynomial< C, O, P > &p, std::size_t exp)
Interval< Number > pow(const Interval< Number > &i, Integer exp)
This class represents a univariate polynomial with coefficients of an arbitrary type.
Variable main_var() const
Retrieves the main variable of this polynomial.
The general-purpose multivariate polynomial class.
The general-purpose monomials.
std::shared_ptr< const Monomial > Arg
std::vector< std::pair< Variable, std::size_t > > Content
const Content & exponents() const
Coefficient & coeff()
Get the coefficient.
Monomial::Arg & monomial()
Get the monomial.