
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