\begin{ccRefConcept}{Modularizable}

\ccDefinition

An algebraic structure is called \ccRefName, if there is a suitable mapping 
into an algebraic structure which is based on the type \ccc{CGAL::Residue}. 
For scalar types, e.g. Integers, this mapping is just the canonical homomorphism 
into the type \ccc{CGAL::Residue} with respect to the current prime. 
For compound types, e.g. Polynomials, 
the mapping is applied to the coefficients of the compound type. 

The mapping is provided via \ccc{CGAL::Modular_traits<Modularizable>}, 
being a model of \ccc{ModularTraits}.

Note that types representing rationals, or types which do have some notion 
of denominator, are not \ccc{Modularizable}. 
This is due to the fact that the denominator may be zero modulo the prime, 
which can not be represented.  

%\ccRefIdfierPage{CORE::BigRat}\\
%\ccRefIdfierPage{CGAL::Gmpq}\\
%\ccRefIdfierPage{leda::rational}\\
%\ccRefIdfierPage{mpq_class}\\
%\ccRefIdfierPage{CGAL::Quotient<NT>}\\

\ccHasModels

\ccRefIdfierPage{int}\\
\ccRefIdfierPage{long}\\
\ccRefIdfierPage{CORE::BigInt}\\
\ccRefIdfierPage{CGAL::Gmpz}\\
\ccRefIdfierPage{leda::integer}\\
\ccRefIdfierPage{mpz_class}\\

\ccRefIdfierPage{CGAL::Lazy_exact_nt<NT>}, depends on template argument.\\ 
\ccRefIdfierPage{CGAL::Sqrt_extension<NT,ROOT>}, depends on template arguments.\\
\ccRefIdfierPage{CGAL::Polynomial<Coeff>}, depends on template argument.\\ 

\ccSeeAlso
\ccRefIdfierPage{CGAL::Residue}\\
\ccRefIdfierPage{CGAL::Modular_traits<T>}\\

\end{ccRefConcept}