8 #include "../CoCoAAdaptor.h"
10 #include "../MultivariatePolynomial.h"
11 #include "../UnivariatePolynomial.h"
15 template<
typename C,
typename O,
typename P>
17 CARL_LOG_DEBUG(
"carl.core.sqfree",
"SquareFreePart of " << polynomial);
37 template<
typename Coeff, EnableIf<is_subset_of_rationals_type<Coeff>> = dummy>
46 template<
typename Coeff, DisableIf<is_subset_of_rationals_type<Coeff>> = dummy>
47 UnivariatePolynomial<Coeff>
squareFreePart(
const UnivariatePolynomial<Coeff>& p) {
A small wrapper that configures logging for carl.
#define CARL_LOG_DEBUG(channel, msg)
carl is the main namespace for the library.
MultivariatePolynomial< C, O, P > squareFreePart(const MultivariatePolynomial< C, O, P > &polynomial)
UnivariatePolynomial< C > to_univariate_polynomial(const MultivariatePolynomial< C, O, P > &p)
Convert a univariate polynomial that is currently (mis)represented by a 'MultivariatePolynomial' into...
const T & derivative(const T &t, Variable, std::size_t n=1)
Computes the n'th derivative of a number, which is either the number itself (for n = 0) or zero.
cln::cl_I gcd(const cln::cl_I &a, const cln::cl_I &b)
Calculate the greatest common divisor of two integers.
bool is_zero(const Interval< Number > &i)
Check if this interval is a point-interval containing 0.
void divide(const cln::cl_I ÷nd, const cln::cl_I &divisor, cln::cl_I "ient, cln::cl_I &remainder)
T type
A type associated with the type.
This class represents a univariate polynomial with coefficients of an arbitrary type.
UnivariatePolynomial< typename IntegralType< Coefficient >::type > coprime_coefficients() const
Constructs a new polynomial that is scaled such that the coefficients are coprime.
bool is_linear_in_main_var() const
The general-purpose multivariate polynomial class.
bool is_constant() const
Check if the polynomial is constant.
bool is_linear() const
Check if the polynomial is linear.