\begin{ccRefConcept}{PolynomialTraits_d::PseudoDivision}

\ccDefinition


This \ccc{AdaptableFunctor} computes the so called {\em pseudo division} 
of to polynomials $f$ and $g$. 
     
     
Given $f$ and $g != 0$, compute quotient $q$ and remainder $r$
such that $D \cdot f = g \cdot q + r$ and $degree(r) < degree(g)$,
where $ D = leading\_coefficient(g)^{max(0, degree(f)-degree(g)+1)}$



\ccRefines 

\ccTypes


\ccSetThreeColumns{xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx}{xxx}{}
\ccTypedef{typedef void                               result_type;}{}\ccGlue
\ccTypedef{typedef PolynomialTraits_d::Polynomial_d   first_argument_type;}{}\ccGlue
\ccTypedef{typedef PolynomialTraits_d::Polynomial_d   second_argument_type;}{}\ccGlue
\ccTypedef{typedef PolynomialTraits_d::Polynomial_d   third_argument_type;}{}\ccGlue
\ccTypedef{typedef PolynomialTraits_d::Polynomial_d   fourth_argument_type;}{}\ccGlue
\ccTypedef{typedef PolynomialTraits_d::Coefficient    fifth_argument_type;}{}\ccGlue
\ccTypedef{typedef int                                sixth_argument_type;}{}

\ccOperations

\ccMethod{result_type operator()(first_argument_type  f,
                                 second_argument_type g,
                                 third_argument_type  q,
                                 fourth_argument_type r,
                                 fifth_argument_type  D);}{ Computes 
        the pseudo division with respect to the outermost variable $x_d$.}

\begin{ccAdvanced}
\ccMethod{result_type operator()(first_argument_type  f,
                                 second_argument_type g,
                                 third_argument_type  q,
                                 fourth_argument_type r,
                                 fifth_argument_type  D,
                                 int i);}{ Computes 
           the pseudo division with respect to variable $x_i$.
           \ccPrecond $0<i \leq d$ }
\end{ccAdvanced}

%\ccHasModels

\ccSeeAlso

\ccRefIdfierPage{Polynomial_d}\\
\ccRefIdfierPage{PolynomialTraits_d}\\
\ccRefIdfierPage{PolynomialTraits_d::PseudoDivision}\\
\ccRefIdfierPage{PolynomialTraits_d::PseudoDivisionRemainder}\\
\ccRefIdfierPage{PolynomialTraits_d::PseudoDivisionQuotient}\\

\end{ccRefConcept}