A model of *EuclideanRing* represents an euclidean ring (or Euclidean domain).
It is an *UniqueFactorizationDomain* that affords a suitable notion of minimality of remainders
such that given $$*x* and $$*y 0* we obtain an (almost) unique solution to
$$* x = qy + r * by demanding that a solution $$*(q,r)* is chosen to minimize $$*r*.
In particular, $$*r* is chosen to be $$*0* if possible.

Moreover, *CGAL::Algebraic_structure_traits< EuclideanRing >* is a model of
*AlgebraicStructureTraits* providing:

- *CGAL::Algebraic_structure_traits< EuclideanRing >::Algebraic_type* derived from *Unique_factorization_domain_tag*

- *CGAL::Algebraic_structure_traits< EuclideanRing >::Mod*

- *CGAL::Algebraic_structure_traits< EuclideanRing >::Div*

- *CGAL::Algebraic_structure_traits< EuclideanRing >::Div_mod*

The most prominent example of a Euclidean ring are the integers.
Whenever both $$*x* and $$*y* are positive, then it is conventional to choose
the smallest positive remainder $$*r*.

*IntegralDomainWithoutDivision*

*IntegralDomain*

*UniqueFactorizationDomain*

*EuclideanRing*

*Field*

*FieldWithSqrt*

*FieldWithKthRoot*

*FieldWithRootOf*

*AlgebraicStructureTraits*