\begin{ccRefConcept}{IntegralDomain}


\ccDefinition

\ccc{IntegralDomain} refines \ccc{IntegralDomainWithoutDivision} by 
providing an integral division.\\
{\bf Note:} The concept does not require the operator / for this operation. 
We intend to reserve the operator syntax for use with a \ccc{Field}.
%Nevertheless, some non-field models of IntegralDomain have one. 



Moreover, \ccc{CGAL::Algebraic_structure_traits< IntegralDomain >} is a model of 
\ccc{AlgebraicStructureTraits} providing:\\
 
- \ccc{CGAL::Algebraic_structure_traits< IntegralDomain >::Algebraic_type} derived from \ccc{Integral_domain_tag} \\
- \ccc{CGAL::Algebraic_structure_traits< IntegralDomain >::Integral_division} a model of \ccc{AlgebraicStructureTraits::IntegralDivision}\\
- \ccc{CGAL::Algebraic_structure_traits< IntegralDomain >::Divides} a model of \ccc{AlgebraicStructureTraits::Divides}\\
  
\ccRefines
 \ccc{IntegralDomainWithoutDivision}

\ccSeeAlso 

\ccRefIdfierPage{IntegralDomainWithoutDivision}\\
\ccRefIdfierPage{IntegralDomain}\\
\ccRefIdfierPage{UniqueFactorizationDomain}\\
\ccRefIdfierPage{EuclideanRing}\\
\ccRefIdfierPage{Field}\\
\ccRefIdfierPage{FieldWithSqrt}\\
\ccRefIdfierPage{FieldWithKthRoot}\\
\ccRefIdfierPage{FieldWithRootOf}\\
\ccRefIdfierPage{AlgebraicStructureTraits}\\

%\ccHasModels
%\CC\ built-in number types \\
%\ccc{CGAL::Gmpq} \\
%\ccc{CGAL::Gmpz} \\
%\ccc{CGAL::Gmpzf} \\

%\ccc{mpz_class} \\
%\ccc{mpq_class} \\
%%\ccc{mpf_class} \\

%\ccc{leda_integer} \\
%\ccc{leda_rational} \\
%\ccc{leda_bigfloat} \\
%\ccc{leda_real} \\

%\ccc{CORE::BigInt} \\
%\ccc{CORE::BigRat} \\
%%\ccc{CORE::BigFloat} \\
%\ccc{CORE::Expr} \\

%%\ccc{CGAL::Interval_nt} \\
%%\ccc{CGAL::Interval_nt_advanced} \\

%\ccc{CGAL::MP_Float} \\
%\ccc{CGAL::Lazy_exact_nt< NT >} (depends on NT) \\
%\ccc{CGAL::Quotient< NT >} \\

%\ccc{CGAL::Sqrt_extension< NT, Root >} \\
%%\ccc{CGAL::Polynomial< T >} \\


\end{ccRefConcept}