5 #include <carl-arith/poly/umvpoly/functions/Derivative.h>
20 template<
typename Poly,
typename Callback>
21 void single(
const Poly& p, carl::Variable variable, Callback&& cb) {
27 for (
const auto& coeff : p.coefficients()) {
34 for (std::size_t i = 0; i < RED_d.size(); ++i) {
35 const auto& reducta = RED_p[i];
36 const auto& reducta_derivative = RED_d[i];
48 template<
typename Poly,
typename Callback>
49 void paired(
const Poly& p,
const UPoly& q, carl::Variable variable, Callback&& cb) {
50 SMTRAT_LOG_DEBUG(
"smtrat.cad.projection",
"Collins_paired(" << p <<
", " << q <<
")");
53 for (
const auto& reducta_p : RED_p) {
54 for (
const auto& reducta_q : RED_q) {
void paired(const Poly &p, const UPoly &q, carl::Variable variable, Callback &&cb)
Implements the part of Collins 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 Collins projection operator from that deals with a single polynomial p: .
void returnPoly(const Poly &p, Callback &&cb)
std::vector< Poly > PSC(const Poly &p, const Poly &q)
Computes the Principal Subresultant Coefficients of two polynomials.
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)
Construct the set of reducta of the given polynomial.