\( \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
List of all members
AlgebraicStructureTraits_::UnitPart Concept Reference
Concepts

## Definition

This `AdaptableUnaryFunction` computes the unit part of a given ring element.

The mathematical definition of unit part is as follows: Two ring elements \( a\) and \( b\) are said to be associate if there exists an invertible ring element (i.e. a unit) \( u\) such that \( a = ub\). This defines an equivalence relation. We can distinguish exactly one element of every equivalence class as being unit normal. Then each element of a ring possesses a factorization into a unit (called its unit part) and a unit-normal ring element (called its unit normal associate).

For the integers, the non-negative numbers are by convention unit normal, hence the unit-part of a non-zero integer is its sign. For a `Field`, every non-zero element is a unit and is its own unit part, its unit normal associate being one. The unit part of zero is, by convention, one.

Refines:
  `AdaptableUnaryFunction`

See Also
  `AlgebraicStructureTraits`

## Types
typedef unspecified_type | result_type
| Is `AlgebraicStructureTraits::Type`.
typedef unspecified_type | argument_type
| Is `AlgebraicStructureTraits::Type`.

## Operations
result_type | operator() (argument_type x)
| returns the unit part of \( x\).