An algebraic structure is called *Modularizable*, if there is a suitable mapping
into an algebraic structure which is based on the type *CGAL::Residue*.
For scalar types, e.g. Integers, this mapping is just the canonical homomorphism
into the type *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 *CGAL::Modular_traits<Modularizable>*,
being a model of *ModularTraits*.

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

*int*

*long*

*CORE::BigInt*

*CGAL::Gmpz*

*leda::integer*

*mpz_class*

The following types are *Modularizable* iff their template arguments are.
*CGAL::Lazy_exact_nt<NT>*

*CGAL::Sqrt_extension<NT,ROOT>*

*CGAL::Polynomial<Coeff>*

CGAL Open Source Project.
Release 3.5.
1 October 2009.