\( \newcommand{\E}{\mathrm{E}} \) \( \newcommand{\A}{\mathrm{A}} \) \( \newcommand{\R}{\mathrm{R}} \) \( \newcommand{\N}{\mathrm{N}} \) \( \newcommand{\Q}{\mathrm{Q}} \) \( \newcommand{\Z}{\mathrm{Z}} \) \( \def\ccSum #1#2#3{ \sum_{#1}^{#2}{#3} } \def\ccProd #1#2#3{ \sum_{#1}^{#2}{#3} }\)
CGAL 4.12.1 - Polynomial
PolynomialTraits_d::PolynomialSubresultantsWithCofactors Concept Reference

Definition

Note: This functor is optional!

Computes the polynomial subresultant of two polynomials \( p\) and \( q\) of degree \( n\) and \( m\), respectively, as defined in the documentation of PolynomialTraits_d::PolynomialSubresultants. Moreover, for \( \mathrm{Sres}_i(p,q)\), polynomials \( u_i\) and \( v_i\) with \( \deg u_i\leq m-i-1\) and \( \deg v_i\leq n-i-1\) are computed such that \( \mathrm{Sres}_i(p,q)=u_i p + v_i q\). \( u_i\) and \( v_i\) are called the cofactors of \( \mathrm{Sres}_i(p,q)\).

The result is written in three output ranges, each of length \( \min\{n,m\}+1\), starting with the \( 0\)-th subresultant and the corresponding cofactors.

Refines:

AdaptableBinaryFunction

CopyConstructible

DefaultConstructible

See also
Polynomial_d
PolynomialTraits_d
PolynomialTraits_d::Resultant
PolynomialTraits_d::PolynomialSubresultants
PolynomialTraits_d::PrincipalSubresultants
PolynomialTraits_d::SturmHabichtSequenceWithCofactors

Operations

template<typename OutputIterator1 , typename OutputIterator2 , typename OutputIterator3 >
OutputIterator1 operator() (Polynomial_d p, Polynomial_d q, OutputIterator1 sres, OutputIterator2 co_p, OutputIterator3 co_q)
 computes the subresultants of \( p\) and \( q\), and the cofactors, with respect to the outermost variable. More...
 
template<typename OutputIterator1 , typename OutputIterator2 , typename OutputIterator3 >
OutputIterator1 operator() (Polynomial_d p, Polynomial_d q, OutputIterator1 sres, OutputIterator2 co_p, OutputIterator3 co_q, int i)
 computes the subresultants of \( p\) and \( q\), and the cofactors, with respect to \( x_i\). More...
 

Member Function Documentation

◆ operator()() [1/2]

template<typename OutputIterator1 , typename OutputIterator2 , typename OutputIterator3 >
OutputIterator1 PolynomialTraits_d::PolynomialSubresultantsWithCofactors::operator() ( Polynomial_d  p,
Polynomial_d  q,
OutputIterator1  sres,
OutputIterator2  co_p,
OutputIterator3  co_q 
)

computes the subresultants of \( p\) and \( q\), and the cofactors, with respect to the outermost variable.

Each element is of type PolynomialTraits_d::Polynomial_d.

◆ operator()() [2/2]

template<typename OutputIterator1 , typename OutputIterator2 , typename OutputIterator3 >
OutputIterator1 PolynomialTraits_d::PolynomialSubresultantsWithCofactors::operator() ( Polynomial_d  p,
Polynomial_d  q,
OutputIterator1  sres,
OutputIterator2  co_p,
OutputIterator3  co_q,
int  i 
)

computes the subresultants of \( p\) and \( q\), and the cofactors, with respect to \( x_i\).

Each element is of type PolynomialTraits_d::Polynomial_d.