\begin{ccRefConcept}{PolynomialTraits_d::MakeSquareFree}
\ccDefinition

This \ccc{AdaptableFunctor} computes the square-free part of 
a polynomial of type \ccc{PolynomialTraits_d::Polynomial_d}  
{\em up to a constant factor}.  

A polynomial $p$ can be  factored into square-free and pairwise coprime 
non-constant factors $g_i$ with multiplicities $m_i$ and a constant factor $a$, 
such that $p = a  \cdot  g_1m_1  \cdot  ...  \cdot  g_nm_n$.


This functor computes  $g_1  \cdot  ...  \cdot  g_n$ {\em up to a constant factor}. 

\ccRefines 
\ccc{AdaptableFunctor}

\ccTypes

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

\ccOperations
\ccMethod{result_type operator()(first_argument_type  p);}
         { return the square-free part of $p$ {\em up to a constant factor.} }


%\ccHasModels

\ccSeeAlso

\ccRefIdfierPage{Polynomial_d}\\
\ccRefIdfierPage{PolynomialTraits_d}
\end{ccRefConcept}
