cgal/Modular_arithmetic/doc_tex/Modular_arithmetic_ref/Modularizable.tex

44 lines
1.5 KiB
TeX

\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}\\
The following types are \ccc{Modularizable} iff their template arguments are.
\ccRefIdfierPage{CGAL::Lazy_exact_nt<NT>}\\
\ccRefIdfierPage{CGAL::Sqrt_extension<NT,ROOT>}\\
\ccRefIdfierPage{CGAL::Polynomial<Coeff>}\\
\ccSeeAlso
\ccRefIdfierPage{CGAL::Residue}\\
\ccRefIdfierPage{CGAL::Modular_traits<T>}\\
\end{ccRefConcept}