EuclideanRing

Companion
class
trait RingFunctions[EuclideanRing]
trait MultiplicativeMonoidFunctions[EuclideanRing]
trait MultiplicativeSemigroupFunctions[EuclideanRing]
trait AdditiveGroupFunctions[EuclideanRing]
trait AdditiveMonoidFunctions[EuclideanRing]
trait AdditiveSemigroupFunctions[EuclideanRing]
class Object
trait Matchable
class Any

Type members

Classlikes

trait WithEuclideanAlgorithm[@specialized(Int, Long, Float, Double) A] extends EuclideanRing[A]

Value members

Concrete methods

@inline
final
def apply[A](implicit e: EuclideanRing[A]): EuclideanRing[A]
@tailrec
final
def euclid[@specialized(Int, Long, Float, Double) A : EuclideanRing](a: A, b: A): A

Inherited methods

final
def defaultFromBigInt[@specialized(Int, Long, Float, Double) A](n: BigInt)(implicit ev: EuclideanRing[A]): A
Inherited from
RingFunctions
final
def defaultFromDouble[A](a: Double)(implicit ringA: Ring[A], mgA: MultiplicativeGroup[A]): A

Returns the given Double, understood as a rational number, in the provided (division) ring.

Returns the given Double, understood as a rational number, in the provided (division) ring.

This is implemented in terms of basic ops. However, this is probably significantly less efficient than can be done with a specific type. So, it is recommended to specialize this general method.

Inherited from
RingFunctions
def emod[@specialized(Int, Long, Float, Double) A](a: A, b: A)(implicit ev: EuclideanRing[A]): A
def equot[@specialized(Int, Long, Float, Double) A](a: A, b: A)(implicit ev: EuclideanRing[A]): A
def equotmod[@specialized(Int, Long, Float, Double) A](a: A, b: A)(implicit ev: EuclideanRing[A]): (A, A)
def euclideanFunction[@specialized(Int, Long, Float, Double) A](a: A)(implicit ev: EuclideanRing[A]): BigInt
def fromBigInt[@specialized(Int, Long, Float, Double) A](n: BigInt)(implicit ev: EuclideanRing[A]): A
Inherited from
RingFunctions
def fromInt[@specialized(Int, Long, Float, Double) A](n: Int)(implicit ev: EuclideanRing[A]): A
Inherited from
RingFunctions
def gcd[@specialized(Int, Long, Float, Double) A](a: A, b: A)(implicit ev: EuclideanRing[A], eqA: Eq[A]): A
Inherited from
GCDRingFunctions
def isAdditiveCommutative[A](implicit ev: EuclideanRing[A]): Boolean
Inherited from
AdditiveSemigroupFunctions
def isMultiplicativeCommutative[A](implicit ev: EuclideanRing[A]): Boolean
Inherited from
MultiplicativeSemigroupFunctions
def isOne[@specialized(Int, Long, Float, Double) A](a: A)(implicit ev0: EuclideanRing[A], ev1: Eq[A]): Boolean
Inherited from
MultiplicativeMonoidFunctions
def isZero[@specialized(Int, Long, Float, Double) A](a: A)(implicit ev0: EuclideanRing[A], ev1: Eq[A]): Boolean
Inherited from
AdditiveMonoidFunctions
def lcm[@specialized(Int, Long, Float, Double) A](a: A, b: A)(implicit ev: EuclideanRing[A], eqA: Eq[A]): A
Inherited from
GCDRingFunctions
def minus[@specialized(Int, Long, Float, Double) A](x: A, y: A)(implicit ev: EuclideanRing[A]): A
Inherited from
AdditiveGroupFunctions
def negate[@specialized(Int, Long, Float, Double) A](x: A)(implicit ev: EuclideanRing[A]): A
Inherited from
AdditiveGroupFunctions
def one[@specialized(Int, Long, Float, Double) A](implicit ev: EuclideanRing[A]): A
Inherited from
MultiplicativeMonoidFunctions
def plus[@specialized(Int, Long, Float, Double) A](x: A, y: A)(implicit ev: EuclideanRing[A]): A
Inherited from
AdditiveSemigroupFunctions
def pow[@specialized(Int, Long, Float, Double) A](a: A, n: Int)(implicit ev: EuclideanRing[A]): A
Inherited from
MultiplicativeSemigroupFunctions
def product[@specialized(Int, Long, Float, Double) A](as: IterableOnce[A])(implicit ev: EuclideanRing[A]): A
Inherited from
MultiplicativeMonoidFunctions
def sum[@specialized(Int, Long, Float, Double) A](as: IterableOnce[A])(implicit ev: EuclideanRing[A]): A
Inherited from
AdditiveMonoidFunctions
def sumN[@specialized(Int, Long, Float, Double) A](a: A, n: Int)(implicit ev: EuclideanRing[A]): A
Inherited from
AdditiveSemigroupFunctions
def times[@specialized(Int, Long, Float, Double) A](x: A, y: A)(implicit ev: EuclideanRing[A]): A
Inherited from
MultiplicativeSemigroupFunctions
def tryProduct[A](as: IterableOnce[A])(implicit ev: EuclideanRing[A]): Option[A]
Inherited from
MultiplicativeSemigroupFunctions
def trySum[A](as: IterableOnce[A])(implicit ev: EuclideanRing[A]): Option[A]
Inherited from
AdditiveSemigroupFunctions
def zero[@specialized(Int, Long, Float, Double) A](implicit ev: EuclideanRing[A]): A
Inherited from
AdditiveMonoidFunctions