CGAL 5.6  Polynomial

Computes the SturmHabicht sequence (aka the signed subresultant sequence) of a polynomial \( f\) of type PolynomialTraits_d::Polynomial_d
with respect to a certain variable \( x_i\). The SturmHabicht sequence is similar to the polynomial subresultant sequence of \( f\) and its derivative \( f':=\frac{\partial f}{\partial x_i}\) with respect to \( x_i\). The implementation is based on the following definition:
Let \( n:=\deg f\) and \( \delta_k:=(1)^{k(k+1)/2}\). For \( k\in\{0,\ldots,n\}\), the \( k\)th SturmHabicht polynomial of \( f\) is defined as:
\[ \mathrm{Stha}_{k}(f) = \left \{ \begin{array}{cll} f & \text{if} & k = n \\ f' & \text{if} & k = n  1 \\ \delta_{n  k  1}\mathrm{Sres}_{k}(f,f') & \text{if} & 0 \leq k \leq n  2 \end{array} \right . \]
where \( \mathrm{Sres}_k(f,f')\) is defined as in the concept PolynomialTraits_d::PolynomialSubresultants
.
The result is written in an output range, starting with the \( 0\)th SturmHabicht polynomial (which is equal to the discriminant of \( f\) up to a multiple of the leading coefficient).
Operations  
template<typename OutputIterator >  
OutputIterator  operator() (Polynomial_d f, OutputIterator out) 
computes the SturmHabicht sequence of \( f\), with respect to the outermost variable. More...  
template<typename OutputIterator >  
OutputIterator  operator() (Polynomial_d f, OutputIterator out, int i) 
computes the SturmHabicht sequence of \( f\) with respect to the variable \( x_i\).  
OutputIterator PolynomialTraits_d::SturmHabichtSequence::operator()  (  Polynomial_d  f, 
OutputIterator  out  
) 
computes the SturmHabicht sequence of \( f\), with respect to the outermost variable.
Each element is of type PolynomialTraits_d::Polynomial_d
.