\( \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_::Gcd Concept Reference
Concepts

## Definition

`AdaptableBinaryFunction` providing the gcd.

The greatest common divisor ( \( gcd\)) of ring elements \( x\) and \( y\) is the unique ring element \( d\) (up to a unit) with the property that any common divisor of \( x\) and \( y\) also divides \( d\). (In other words: \( d\) is the greatest lower bound of \( x\) and \( y\) in the partial order of divisibility.) We demand the \( gcd\) to be unit-normal (i.e. have unit part 1).

\( gcd(0,0)\) is defined as \( 0\), since \( 0\) is the greatest element with respect to the partial order of divisibility. This is because an element \( a \in R\) is said to divide \( b \in R\), iff \( \exists r \in R\) such that \( a \cdot r = b\). Thus, \( 0\) is divided by every element of the Ring, in particular by itself.

Refines:
  `AdaptableBinaryFunction`

See Also
  `AlgebraicStructureTraits`

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

## Operations
result_type | operator() (first_argument_type x, second_argument_type y)
| returns \( gcd(x,y)\).
template<class NT1 , class NT2 >
result_type | operator() (NT1 x, NT2 y)
| This operator is defined if `NT1` and `NT2` are `ExplicitInteroperable` with coercion type `AlgebraicStructureTraits::Type`.