
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
Do you have
questions or comments?
Copyright © SciFace Software GmbH & Co. KG
2000