# Cat::EuclideanDomain

Category of Euclidean domains

## Description

`Cat::EuclideanDomain` represents the category of Euclidean domains.

A `Cat::EuclideanDomain` is a principal ideal domain with an "Euclidean degree" function `"euclideanDegree"` and operations `"quo"` and `"rem"` computing the Euclidean quotient and Euclidean remainder.

The Euclidean degree returns nonnegative integers such that for each non-zero x and y there exist s and r such that x = ys + r and either the Euclidean degree of r is less than that of s or r is zero.

In addition s is equal to `quo(x,y)` and r is equal to `rem(x,y)`.

## Categories

`Cat::PrincipalIdealDomain`

collapse all

## Basic Methods

### `euclideanDegree` — Return Euclidean degree

`euclideanDegree(x)`

### `divide` — Division with remainder

`divide(x, y)`

## Mathematical Methods

### `_divide` — Exact division

`_divide(x, y)`

### `gcd` — Greatest common divisor

`gcd(x, …)`

### `gcdex` — Extended greatest common divisor

`gcdex(x, y)`

### `idealGenerator` — Generator of finitely generated ideal

`idealGenerator(x, …)`

### `quo` — Euclidean quotient

`quo(x, y)`

The default implementation provided here uses the basic method `"divide"`.

### `rem` — Euclidean remainder

`rem(x, y)`

The default implementation provided here uses the basic method `"divide"`.