\begin{ccRefConcept}{PolynomialTraits_d::PrincipalSubresultants} \textbf{Note:} This functor is optional! \ccDefinition Computes the principal subresultant of two polynomials $p$ and $q$ of type \ccc{PolynomialTraits_d::Coefficient_type} with respect to the outermost variable. The $i$-th principal subresultant, $\mathrm{sres}_i(p,q)$, is defined as the coefficient at $t^i$ of the $i$-th polynomial subresultant $\mathrm{Sres}_i(p,q)$. Thus, it is either the leading coefficient of $\mathrm{Sres}_i$, or zero in the case where its degree is below $i$. The result is written in an output range, starting with the $0$-th principal subresultant $\mathrm{sres}_0(p,q)$ ,aka as the resultant of $p$ and $q$. (Note that $\mathrm{sres}_0(p,q)=\mathrm{Sres}_0(p,q)$ by definition) \ccRefines \ccc{AdaptableBinaryFunction}\\ \ccc{CopyConstructible}\\ \ccc{DefaultConstructible}\\ \ccCreationVariable{fo} \ccOperations \ccMethod{template OutputIterator operator()(Polynomial_d p, Polynomial_d q, OutputIterator out);} { computes the principal subresultants of $p$ and $q$, with respect to the outermost variable. Each element is of type \ccc{PolynomialTraits_d::Coefficient_type}.} \ccMethod{template OutputIterator operator()(Polynomial_d p, Polynomial_d q, OutputIterator out, int i);} { computes the principal subresultants of $p$ and $q$, with respect to the variable $x_i$.} %\ccHasModels \ccSeeAlso \ccRefIdfierPage{Polynomial_d}\\ \ccRefIdfierPage{PolynomialTraits_d}\\ \ccRefIdfierPage{PolynomialTraits_d::Resultant}\\ \ccRefIdfierPage{PolynomialTraits_d::PolynomialSubresultants}\\ \ccRefIdfierPage{PolynomialTraits_d::PrincipalSturmHabichtSequence}\\ \end{ccRefConcept}