EuclideanRing

algebra.ring.EuclideanRing
See theEuclideanRing companion object
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

Attributes

Companion:
object
Source:
EuclideanRing.scala
Graph
Supertypes
Known subtypes
Self type

Members list

Concise view

Value members

Abstract methods

def emod(a: A, b: A): A

Attributes

Source:
EuclideanRing.scala
def equot(a: A, b: A): A

Attributes

Source:
EuclideanRing.scala

Attributes

Source:
EuclideanRing.scala

Concrete methods

def equotmod(a: A, b: A): (A, A)

Attributes

Source:
EuclideanRing.scala
def gcd(a: A, b: A)(implicit ev: Eq[A]): A

Attributes

Source:
EuclideanRing.scala
def lcm(a: A, b: A)(implicit ev: Eq[A]): A

Attributes

Source:
EuclideanRing.scala

Inherited methods

def fromBigInt(n: BigInt): A

Convert the given BigInt to an instance of A.

Convert the given BigInt to an instance of A.

This is equivalent to n repeated summations of this ring's one, or -n summations of -one if n is negative.

Most type class instances should consider overriding this method for performance reasons.

Attributes

Inherited from:
Ring
Source:
Ring.scala
def fromInt(n: Int): A

Convert the given integer to an instance of A.

Convert the given integer to an instance of A.

Defined to be equivalent to sumN(one, n).

That is, n repeated summations of this ring's one, or -n summations of -one if n is negative.

Most type class instances should consider overriding this method for performance reasons.

Attributes

Inherited from:
Ring
Source:
Ring.scala
def isOne(a: A)(implicit ev: Eq[A]): Boolean

Tests if a is one.

Tests if a is one.

Attributes

Inherited from:
MultiplicativeMonoid
Source:
Multiplicative.scala
def isZero(a: A)(implicit ev: Eq[A]): Boolean

Tests if a is zero.

Tests if a is zero.

Attributes

Inherited from:
AdditiveMonoid
Source:
Additive.scala
def minus(x: A, y: A): A

Attributes

Inherited from:
AdditiveGroup
Source:
Additive.scala
def negate(x: A): A

Attributes

Inherited from:
AdditiveGroup
Source:
Additive.scala
def one: A

Attributes

Inherited from:
MultiplicativeMonoid
Source:
Multiplicative.scala
def plus(x: A, y: A): A

Attributes

Inherited from:
AdditiveSemigroup
Source:
Additive.scala
override def pow(a: A, n: Int): A
def product(as: IterableOnce[A]): A

Given a sequence of as, compute the product.

Given a sequence of as, compute the product.

Attributes

Inherited from:
MultiplicativeMonoid
Source:
Multiplicative.scala
def sum(as: IterableOnce[A]): A

Given a sequence of as, compute the sum.

Given a sequence of as, compute the sum.

Attributes

Inherited from:
AdditiveMonoid
Source:
Additive.scala
override def sumN(a: A, n: Int): A

Attributes

Definition Classes
Inherited from:
AdditiveGroup
Source:
Additive.scala
def times(x: A, y: A): A

Attributes

Inherited from:
MultiplicativeSemigroup
Source:
Multiplicative.scala
override def tryProduct(as: IterableOnce[A]): Option[A]

Given a sequence of as, combine them and return the total.

Given a sequence of as, combine them and return the total.

If the sequence is empty, returns None. Otherwise, returns Some(total).

Attributes

Definition Classes
Inherited from:
MultiplicativeMonoid
Source:
Multiplicative.scala
override def trySum(as: IterableOnce[A]): Option[A]

Given a sequence of as, combine them and return the total.

Given a sequence of as, combine them and return the total.

If the sequence is empty, returns None. Otherwise, returns Some(total).

Attributes

Definition Classes
Inherited from:
AdditiveMonoid
Source:
Additive.scala
def zero: A

Attributes

Inherited from:
AdditiveMonoid
Source:
Additive.scala