mirror of https://github.com/CGAL/cgal
69 lines
1.8 KiB
C++
69 lines
1.8 KiB
C++
|
|
/*!
|
|
\ingroup PkgPolynomialConcepts
|
|
\cgalConcept
|
|
|
|
Computes the polynomial subresultant of two polynomials \f$ p\f$ and \f$ q\f$ of
|
|
type `PolynomialTraits_d::Polynomial_d` with respect to outermost variable.
|
|
Let
|
|
\f$ p=\ccSum{i=0,\ldots,n}{} p_i x^i\f$ and
|
|
\f$ q=\ccSum{i=0,\ldots,m}{} q_i x^i\f$, where \f$ x\f$
|
|
is the outermost variable.
|
|
The \f$ i\f$-th subresultant (with \f$ i=0,\ldots,\min\{n,m\}\f$) is defined by
|
|
|
|
\image html subresultant_def.png
|
|
\image latex subresultant_def.png
|
|
|
|
where \f$ p_i\f$ and \f$ q_i\f$ are set to zero if \f$ i<0\f$.
|
|
In the case that \f$ n=m\f$, \f$ \mathrm{Sres_n}\f$ is set to \f$ q\f$.
|
|
|
|
The result is written in an output range, starting with the \f$ 0\f$-th subresultant
|
|
\f$ \mathrm{Sres}_0(p,q)\f$
|
|
(aka as the resultant of \f$ p\f$ and \f$ q\f$).
|
|
|
|
\note This functor is optional.
|
|
|
|
\cgalRefines `AdaptableBinaryFunction`
|
|
\cgalRefines `CopyConstructible`
|
|
\cgalRefines `DefaultConstructible`
|
|
|
|
\sa `Polynomial_d`
|
|
\sa `PolynomialTraits_d`
|
|
\sa `PolynomialTraits_d::Resultant`
|
|
\sa `PolynomialTraits_d::PrincipalSubresultants`
|
|
\sa `PolynomialTraits_d::PolynomialSubresultantsWithCofactors`
|
|
\sa `PolynomialTraits_d::SturmHabichtSequence`
|
|
|
|
*/
|
|
|
|
class PolynomialTraits_d::PolynomialSubresultants {
|
|
public:
|
|
|
|
/// \name Operations
|
|
/// @{
|
|
|
|
/*!
|
|
computes the polynomial subresultants of \f$ p\f$ and \f$ q\f$,
|
|
with respect to the outermost variable. Each element is of type
|
|
`PolynomialTraits_d::Polynomial_d`.
|
|
*/
|
|
template<typename OutputIterator>
|
|
OutputIterator operator()(Polynomial_d p,
|
|
Polynomial_d q,
|
|
OutputIterator out);
|
|
|
|
/*!
|
|
computes the polynomial subresultants of \f$ p\f$ and \f$ q\f$,
|
|
with respect to the variable \f$ x_i\f$.
|
|
*/
|
|
template<typename OutputIterator>
|
|
OutputIterator operator()(Polynomial_d p,
|
|
Polynomial_d q,
|
|
OutputIterator out,
|
|
int i);
|
|
|
|
/// @}
|
|
|
|
}; /* end PolynomialTraits_d::PolynomialSubresultants */
|
|
|