\begin{ccRefConcept}{UniqueFactorizationDomain}


\ccDefinition


A model of \ccc{UniqueFactorizationDomain} is an \ccc{IntegralDomain} with the 
additional property 
that the ring it represents is a unique factorization domain 
(a.k.a. UFD or factorial ring), meaning that every non-zero non-unit 
element has a factorization into irreducible elements that is unique 
up to order and up to multiplication by invertible elements (units). 
(An irreducible element is a non-unit ring element that cannot be factored 
further into two non-unit elements. In a UFD, the irreducible elements 
are precisely the prime elements.)

In a UFD, any two elements, not both zero, possess a greatest common 
divisor (gcd). 

Moreover, \ccc{CGAL::Algebraic_structure_traits< UniqueFactorizationDomain >} 
is a model of \ccc{AlgebraicStructureTraits} providing:\\ 
- \ccc{CGAL::Algebraic_structure_traits< UniqueFactorizationDomain >::Algebraic_type} 
derived from \ccc{Unique_factorization_domain_tag} \\
- \ccc{CGAL::Algebraic_structure_traits< UniqueFactorizationDomain >::Gcd}  a model of \ccc{AlgebraicStructureTraits::Gcd}\\
  

 
\ccRefines
 \ccc{IntegralDomain}
 
\ccSeeAlso

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

%\ccHasModels
%\ccc{int}\\
%\ccc{long}\\

%\ccc{CGAL::Gmpz} \\
%\ccc{CGAL::Gmpzf} \\

%\ccc{mpz_class} \\

%\ccc{leda_integer} \\

%\ccc{CORE::BigInt} \\

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

%\ccc{CGAL::Polynomial< T >} \\


\end{ccRefConcept}