trait EuclideanRing[A] extends GCDRing[A]
EuclideanRing implements a Euclidean domain.
The formal definition says that every euclidean domain A has (at least one) euclidean function f: A -> N (the natural numbers) where:
(for every x and non-zero y) x = yq + r, and r = 0 or f(r) < f(y).
This generalizes the Euclidean division of integers, where f represents a measure of length (or absolute value), and the previous equation represents finding the quotient and remainder of x and y. So:
quot(x, y) = q mod(x, y) = r
Linear Supertypes
Known Subclasses
Ordering
- Alphabetic
- By Inheritance
Inherited
- EuclideanRing
- GCDRing
- CommutativeRing
- CommutativeRng
- CommutativeRig
- MultiplicativeCommutativeMonoid
- CommutativeSemiring
- MultiplicativeCommutativeSemigroup
- Ring
- Rng
- AdditiveCommutativeGroup
- AdditiveGroup
- Rig
- MultiplicativeMonoid
- Semiring
- MultiplicativeSemigroup
- AdditiveCommutativeMonoid
- AdditiveCommutativeSemigroup
- AdditiveMonoid
- AdditiveSemigroup
- Serializable
- Serializable
- Any
- Hide All
- Show All
Visibility
- Public
- All
Abstract Value Members
- abstract def euclideanFunction(a: A): BigInt
-
abstract
def
gcd(a: A, b: A)(implicit ev: Eq[A]): A
- Definition Classes
- GCDRing
-
abstract
def
getClass(): Class[_]
- Definition Classes
- Any
-
abstract
def
lcm(a: A, b: A)(implicit ev: Eq[A]): A
- Definition Classes
- GCDRing
- abstract def mod(a: A, b: A): A
-
abstract
def
negate(x: A): A
- Definition Classes
- AdditiveGroup
-
abstract
def
one: A
- Definition Classes
- MultiplicativeMonoid
-
abstract
def
plus(x: A, y: A): A
- Definition Classes
- AdditiveSemigroup
- abstract def quot(a: A, b: A): A
-
abstract
def
times(x: A, y: A): A
- Definition Classes
- MultiplicativeSemigroup
-
abstract
def
zero: A
- Definition Classes
- AdditiveMonoid
Concrete Value Members
-
final
def
!=(arg0: Any): Boolean
- Definition Classes
- Any
-
final
def
##(): Int
- Definition Classes
- Any
-
final
def
==(arg0: Any): Boolean
- Definition Classes
- Any
-
def
additive: CommutativeGroup[A]
- Definition Classes
- AdditiveCommutativeGroup → AdditiveCommutativeMonoid → AdditiveCommutativeSemigroup → AdditiveGroup → AdditiveMonoid → AdditiveSemigroup
-
final
def
asInstanceOf[T0]: T0
- Definition Classes
- Any
-
def
equals(arg0: Any): Boolean
- Definition Classes
- Any
-
def
fromBigInt(n: BigInt): A
- Definition Classes
- Ring
-
def
fromInt(n: Int): A
- Definition Classes
- Ring
-
def
hashCode(): Int
- Definition Classes
- Any
-
final
def
isInstanceOf[T0]: Boolean
- Definition Classes
- Any
-
def
isOne(a: A)(implicit ev: algebra.Eq[A]): Boolean
- Definition Classes
- MultiplicativeMonoid
-
def
isZero(a: A)(implicit ev: algebra.Eq[A]): Boolean
- Definition Classes
- AdditiveMonoid
-
def
minus(x: A, y: A): A
- Definition Classes
- AdditiveGroup
-
def
multiplicative: CommutativeMonoid[A]
- Definition Classes
- MultiplicativeCommutativeMonoid → MultiplicativeCommutativeSemigroup → MultiplicativeMonoid → MultiplicativeSemigroup
-
def
positivePow(a: A, n: Int): A
- Attributes
- protected[this]
- Definition Classes
- MultiplicativeSemigroup
-
def
positiveSumN(a: A, n: Int): A
- Attributes
- protected[this]
- Definition Classes
- AdditiveSemigroup
-
def
pow(a: A, n: Int): A
- Definition Classes
- MultiplicativeMonoid → MultiplicativeSemigroup
-
def
product(as: TraversableOnce[A]): A
- Definition Classes
- MultiplicativeMonoid
- def quotmod(a: A, b: A): (A, A)
-
def
sum(as: TraversableOnce[A]): A
- Definition Classes
- AdditiveMonoid
-
def
sumN(a: A, n: Int): A
- Definition Classes
- AdditiveGroup → AdditiveMonoid → AdditiveSemigroup
-
def
toString(): String
- Definition Classes
- Any
-
def
tryProduct(as: TraversableOnce[A]): Option[A]
- Definition Classes
- MultiplicativeMonoid → MultiplicativeSemigroup
-
def
trySum(as: TraversableOnce[A]): Option[A]
- Definition Classes
- AdditiveMonoid → AdditiveSemigroup