## `Cat::EuclideanDomain` -- the category of euclidean domains

#### Introduction

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

#### Generating the category

`Cat::EuclideanDomain()`

#### Categories

`Cat::PrincipalIdealDomain`

#### Details

- An `Cat::EuclideanDomain` is a principal ideal domain with an ``Euclidean degree'' function `"euclideanDegree"` and operations `"quo"` and `"rem"` computing the Euclidean quotient and Euclidean reminder.
- The Euclidean degree returns nonnegative integers such that for each non-zero x and y there exist s and r such that x = y s + 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)`.

#### Method euclideanDegree: returns Euclidean degree

- `euclideanDegree(dom x)`
- - Must return the Euclidean degree of `x`.

#### Method divide: division with reminder

- `divide(dom x, dom y)`
- - Must return a list with two elements: first the Euclidean quotient and second the Euclidean reminder of `x` and `y`.

#### Method _divide: exact division

- `_divide(dom x, dom y)`
- - Implements the exact division `_divide` in terms of `"divide"`: The division returns the Euclidean quotient of `x` and `y` provided that the Euclidean reminder is zero. It returns `FAIL` if the Euclidean reminder is not zero.

#### Method gcd: greatest common divisor

- `gcd(dom x...)`
- - Returns the greatest common divisor of its arguments computed by the Euclidean algorithm.

#### Method gcdex: extended greatest common divisor

- `gcdex(dom x, dom y)`
- - Returns a list `[g,s,t]` where g is the gcd of `x` and `y` and g = x s + y t holds. The result is computed by the extended Euclidean algorithm.

#### Method idealGenerator: generator of finitely generated ideal

- `idealGenerator(dom x...)`
- - Returns the generator of the finitely generated ideal which is generated by the arguments. This is simply the gcd of the arguments.

#### Method quo: Euclidean quotient

- `quo(dom x, dom y)`
- - Returns the Euclidean quotient of `x` and `y`.
  - The default implementation provided here uses the basic method `"divide"`.

#### Method rem: Euclidean reminder

- `rem(dom x, dom y)`
- - Returns the Euclidean reminder of `x` and `y`.
  - The default implementation provided here uses the basic method `"divide"`.

#### Changes

- no changes

Do you have questions or comments?
Copyright © SciFace Software GmbH & Co. KG 2000