\( \newcommand{\E}{\mathrm{E}} \) \( \newcommand{\A}{\mathrm{A}} \) \( \newcommand{\R}{\mathrm{R}} \) \( \newcommand{\N}{\mathrm{N}} \) \( \newcommand{\Q}{\mathrm{Q}} \) \( \newcommand{\Z}{\mathrm{Z}} \) \( \def\ccSum #1#2#3{ \sum_{#1}^{#2}{#3} } \def\ccProd #1#2#3{ \sum_{#1}^{#2}{#3} }\)

CGAL 4.3 - Algebraic Foundations

All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Groups Pages
EuclideanRing Concept Reference
Concepts

## Definition

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 \neq 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_category` derived from `CGAL::Unique_factorization_domain_tag`
- `CGAL::Algebraic_structure_traits< EuclideanRing >::Mod` which is a model of `AlgebraicStructureTraits_::Mod`
- `CGAL::Algebraic_structure_traits< EuclideanRing >::Div` which is a model of `AlgebraicStructureTraits_::Div`
- `CGAL::Algebraic_structure_traits< EuclideanRing >::Div_mod` which is a model of `AlgebraicStructureTraits_::DivMod`

Remarks

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\).

Refines:
  `UniqueFactorizationDomain`

See Also
  `IntegralDomainWithoutDivision`
  `IntegralDomain`
  `UniqueFactorizationDomain`
  `EuclideanRing`
  `Field`
  `FieldWithSqrt`
  `FieldWithKthRoot`
  `FieldWithRootOf`
  `AlgebraicStructureTraits`