CGAL 5.6 - Modular Arithmetic
|
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.
The following types are Modularizable
iff their template arguments are.
CGAL::Sqrt_extension<NT,ROOT>
CGAL::Polynomial<Coeff>
CGAL::Residue
CGAL::Modular_traits<T>