\begin{ccRefConcept}{PolynomialTraits_d::Canonicalize}

\ccDefinition

This \ccc{AdaptableUnaryFunction} computes a unique representative from the set: 
$\{ q | \lambda * q = p\ for\ some\ \lambda \in R  \}$, 
where $p$ is the given polynomial and $R$ the base of the polynomial ring. 
In particular, the computed polynomial has the same zero set as the given one.

In case \ccc{PolynomialTraits::Innermost_coefficient_type} is a model of \ccc{Field}, 
the computed polynomial is the {\em monic} polynomial, 
that is the innermost leading coefficient equals one.
In case \ccc{PolynomialTraits::Innermost_coefficient_type} is a model 
of \ccc{UniqueFactorizationDomain}, the gcd over all innermost coefficients of 
the computed polynomial is one.
For all other cases the notion of uniqueness is up to the concrete model. 



\ccRefines 

\ccc{AdaptableUnaryFunction}

\ccTypes


\ccSetThreeColumns{xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx}{xxx}{}
\ccTypedef{typedef PolynomialTraits_d::Polynomial_d   result_type;}{}\ccGlue
\ccTypedef{typedef PolynomialTraits_d::Polynomial_d   argument_type;}{}

\ccOperations

\ccCreationVariable{fo}
\ccMethod{result_type operator()(first_argument_type  p);}{
        Returns the cononical representative of $p$.}



%\ccHasModels

\ccSeeAlso

\ccRefIdfierPage{Polynomial_d}\\
\ccRefIdfierPage{PolynomialTraits_d}\\

\end{ccRefConcept}