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
GCDRing[A], CommutativeRing[A], CommutativeRng[A], CommutativeRig[A], MultiplicativeCommutativeMonoid[A], CommutativeSemiring[A], MultiplicativeCommutativeSemigroup[A], algebra.ring.Ring[A], algebra.ring.Rng[A], AdditiveCommutativeGroup[A], algebra.ring.AdditiveGroup[A], algebra.ring.Rig[A], algebra.ring.MultiplicativeMonoid[A], algebra.ring.Semiring[A], algebra.ring.MultiplicativeSemigroup[A], AdditiveCommutativeMonoid[A], AdditiveCommutativeSemigroup[A], algebra.ring.AdditiveMonoid[A], algebra.ring.AdditiveSemigroup[A], Serializable, Serializable, Any
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. EuclideanRing
  2. GCDRing
  3. CommutativeRing
  4. CommutativeRng
  5. CommutativeRig
  6. MultiplicativeCommutativeMonoid
  7. CommutativeSemiring
  8. MultiplicativeCommutativeSemigroup
  9. Ring
  10. Rng
  11. AdditiveCommutativeGroup
  12. AdditiveGroup
  13. Rig
  14. MultiplicativeMonoid
  15. Semiring
  16. MultiplicativeSemigroup
  17. AdditiveCommutativeMonoid
  18. AdditiveCommutativeSemigroup
  19. AdditiveMonoid
  20. AdditiveSemigroup
  21. Serializable
  22. Serializable
  23. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. All

Abstract Value Members

  1. abstract def euclideanFunction(a: A): BigInt
  2. abstract def gcd(a: A, b: A)(implicit ev: Eq[A]): A
    Definition Classes
    GCDRing
  3. abstract def getClass(): Class[_]
    Definition Classes
    Any
  4. abstract def lcm(a: A, b: A)(implicit ev: Eq[A]): A
    Definition Classes
    GCDRing
  5. abstract def mod(a: A, b: A): A
  6. abstract def negate(x: A): A
    Definition Classes
    AdditiveGroup
  7. abstract def one: A
    Definition Classes
    MultiplicativeMonoid
  8. abstract def plus(x: A, y: A): A
    Definition Classes
    AdditiveSemigroup
  9. abstract def quot(a: A, b: A): A
  10. abstract def times(x: A, y: A): A
    Definition Classes
    MultiplicativeSemigroup
  11. abstract def zero: A
    Definition Classes
    AdditiveMonoid

Concrete Value Members

  1. final def !=(arg0: Any): Boolean
    Definition Classes
    Any
  2. final def ##(): Int
    Definition Classes
    Any
  3. final def ==(arg0: Any): Boolean
    Definition Classes
    Any
  4. def additive: CommutativeGroup[A]
    Definition Classes
    AdditiveCommutativeGroup → AdditiveCommutativeMonoid → AdditiveCommutativeSemigroup → AdditiveGroup → AdditiveMonoid → AdditiveSemigroup
  5. final def asInstanceOf[T0]: T0
    Definition Classes
    Any
  6. def equals(arg0: Any): Boolean
    Definition Classes
    Any
  7. def fromBigInt(n: BigInt): A
    Definition Classes
    Ring
  8. def fromInt(n: Int): A
    Definition Classes
    Ring
  9. def hashCode(): Int
    Definition Classes
    Any
  10. final def isInstanceOf[T0]: Boolean
    Definition Classes
    Any
  11. def isOne(a: A)(implicit ev: algebra.Eq[A]): Boolean
    Definition Classes
    MultiplicativeMonoid
  12. def isZero(a: A)(implicit ev: algebra.Eq[A]): Boolean
    Definition Classes
    AdditiveMonoid
  13. def minus(x: A, y: A): A
    Definition Classes
    AdditiveGroup
  14. def multiplicative: CommutativeMonoid[A]
    Definition Classes
    MultiplicativeCommutativeMonoid → MultiplicativeCommutativeSemigroup → MultiplicativeMonoid → MultiplicativeSemigroup
  15. def positivePow(a: A, n: Int): A
    Attributes
    protected[this]
    Definition Classes
    MultiplicativeSemigroup
  16. def positiveSumN(a: A, n: Int): A
    Attributes
    protected[this]
    Definition Classes
    AdditiveSemigroup
  17. def pow(a: A, n: Int): A
    Definition Classes
    MultiplicativeMonoid → MultiplicativeSemigroup
  18. def product(as: TraversableOnce[A]): A
    Definition Classes
    MultiplicativeMonoid
  19. def quotmod(a: A, b: A): (A, A)
  20. def sum(as: TraversableOnce[A]): A
    Definition Classes
    AdditiveMonoid
  21. def sumN(a: A, n: Int): A
    Definition Classes
    AdditiveGroup → AdditiveMonoid → AdditiveSemigroup
  22. def toString(): String
    Definition Classes
    Any
  23. def tryProduct(as: TraversableOnce[A]): Option[A]
    Definition Classes
    MultiplicativeMonoid → MultiplicativeSemigroup
  24. def trySum(as: TraversableOnce[A]): Option[A]
    Definition Classes
    AdditiveMonoid → AdditiveSemigroup

Inherited from GCDRing[A]

Inherited from CommutativeRing[A]

Inherited from CommutativeRng[A]

Inherited from CommutativeRig[A]

Inherited from MultiplicativeCommutativeMonoid[A]

Inherited from CommutativeSemiring[A]

Inherited from MultiplicativeCommutativeSemigroup[A]

Inherited from algebra.ring.Ring[A]

Inherited from algebra.ring.Rng[A]

Inherited from AdditiveCommutativeGroup[A]

Inherited from algebra.ring.AdditiveGroup[A]

Inherited from algebra.ring.Rig[A]

Inherited from algebra.ring.MultiplicativeMonoid[A]

Inherited from algebra.ring.Semiring[A]

Inherited from algebra.ring.MultiplicativeSemigroup[A]

Inherited from AdditiveCommutativeMonoid[A]

Inherited from AdditiveCommutativeSemigroup[A]

Inherited from algebra.ring.AdditiveMonoid[A]

Inherited from algebra.ring.AdditiveSemigroup[A]

Inherited from Serializable

Inherited from Serializable

Inherited from Any

Ungrouped