mirror of https://github.com/CGAL/cgal
65 lines
1.8 KiB
C++
65 lines
1.8 KiB
C++
|
|
/*!
|
|
\ingroup PkgPolynomialConcepts
|
|
\cgalConcept
|
|
|
|
Computes the principal leading coefficients of the Sturm-Habicht sequence
|
|
of a polynomials \f$ f\f$ of type `PolynomialTraits_d::Polynomial_d`
|
|
with respect a certain variable \f$ x_i\f$.
|
|
This means that for the \f$ j\f$-th Sturm-Habicht polynomial, this methods returns
|
|
the coefficient of \f$ x_i^j\f$.
|
|
|
|
Note that the degree of the \f$ j\f$-th Sturm-Habicht polynomial is at most \f$ j\f$,
|
|
but the principal coefficient might be zero, thus, this functor does not
|
|
necessarily give the leading coefficient of the Sturm-Habicht polynomials.
|
|
|
|
In case that `PolynomialTraits_d::Coefficient_type` is `RealEmbeddable`, the function `CGAL::number_of_real_roots` can be used
|
|
on the resulting sequence to count the number of distinct real roots of
|
|
the polynomial \f$ f\f$.
|
|
|
|
\note This functor is optional.
|
|
|
|
\cgalRefines `AdaptableBinaryFunction`
|
|
\cgalRefines `CopyConstructible`
|
|
\cgalRefines `DefaultConstructible`
|
|
|
|
\sa `Polynomial_d`
|
|
\sa `PolynomialTraits_d`
|
|
\sa `CGAL::number_of_real_roots()`
|
|
\sa `PolynomialTraits_d::Resultant`
|
|
\sa `PolynomialTraits_d::SturmHabichtSequence`
|
|
\sa `PolynomialTraits_d::PrincipalSubresultants`
|
|
|
|
*/
|
|
|
|
class PolynomialTraits_d::PrincipalSturmHabichtSequence {
|
|
public:
|
|
|
|
/// \name Operations
|
|
/// @{
|
|
|
|
/*!
|
|
computes the principal coefficients of the
|
|
Sturm-Habicht sequence of \f$ f\f$,
|
|
with respect to the outermost variable. Each element is of type
|
|
`PolynomialTraits_d::Coefficient_type`.
|
|
*/
|
|
template<typename OutputIterator>
|
|
OutputIterator operator()(Polynomial_d f,
|
|
OutputIterator out);
|
|
|
|
/*!
|
|
computes the principal coefficients
|
|
of the Sturm-Habicht sequence of \f$ f\f$
|
|
with respect to the variable \f$ x_i\f$.
|
|
*/
|
|
template<typename OutputIterator>
|
|
OutputIterator operator()(Polynomial_d f,
|
|
OutputIterator out,
|
|
int i);
|
|
|
|
/// @}
|
|
|
|
}; /* end PolynomialTraits_d::PrincipalSturmHabichtSequence */
|
|
|