\( \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.8 - Algebraic Foundations

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

## Definition

A model of `UniqueFactorizationDomain` is an `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, `CGAL::Algebraic_structure_traits< UniqueFactorizationDomain >` is a model of `AlgebraicStructureTraits` providing:

- `CGAL::Algebraic_structure_traits< UniqueFactorizationDomain >::Algebraic_category` derived from `CGAL::Unique_factorization_domain_tag`
- `CGAL::Algebraic_structure_traits< UniqueFactorizationDomain >::Gcd` which is a model of `AlgebraicStructureTraits_::Gcd`

Refines:
  `IntegralDomain`

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