18 template<
typename Poly,
typename Callback>
19 void single(
const Poly& p, carl::Variable variable, Callback&& cb) {
23 for (
const auto& coeff : p.coefficients()) {
24 if (coeff.is_constant())
continue;
34 template<
typename Poly,
typename Callback>
35 void paired(
const Poly& p,
const UPoly& q, carl::Variable variable, Callback&& cb) {
36 SMTRAT_LOG_DEBUG(
"smtrat.cad.projection",
"McCallum_paired(" << p <<
", " << q <<
")");
void paired(const Poly &p, const UPoly &q, carl::Variable variable, Callback &&cb)
Implements the part of McCallums projection operator from that deals with two polynomials p and q: .
void single(const Poly &p, carl::Variable variable, Callback &&cb)
Implements the part of McCallums projection operator from that deals with a single polynomial p: .
Poly resultant(carl::Variable variable, const Poly &p, const Poly &q)
Computes the resultant of two polynomials.
void returnPoly(const Poly &p, Callback &&cb)
Poly discriminant(carl::Variable variable, const Poly &p)
Computes the discriminant of a polynomial.
Poly normalize(const Poly &p)
Normalizes the given Poly by removing constant and duplicate factors.
carl::UnivariatePolynomial< Poly > UPoly
Class to create the formulas for axioms.
carl::MultivariatePolynomial< Rational > Poly
#define SMTRAT_LOG_DEBUG(channel, msg)