RingFunctions

trait RingFunctions[R <: ([T] =>> Ring[T])] extends AdditiveGroupFunctions[R] with MultiplicativeMonoidFunctions[R]
object BoolRing
object Field
object Ring

Value members

Concrete methods

final def defaultFromBigInt[@specialized(Int, Long, Float, Double) A](n: BigInt)(ev: R[A]): A
final def defaultFromDouble[A](a: Double)(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.

def fromBigInt[@specialized(Int, Long, Float, Double) A](n: BigInt)(ev: R[A]): A
def fromInt[@specialized(Int, Long, Float, Double) A](n: Int)(ev: R[A]): A

Inherited methods

def isAdditiveCommutative[A](ev: R[A]): Boolean
def isMultiplicativeCommutative[A](ev: R[A]): Boolean
def isOne[@specialized(Int, Long, Float, Double) A](a: A)(ev0: R[A], ev1: Eq[A]): Boolean
def isZero[@specialized(Int, Long, Float, Double) A](a: A)(ev0: R[A], ev1: Eq[A]): Boolean
def minus[@specialized(Int, Long, Float, Double) A](x: A, y: A)(ev: R[A]): A
def negate[@specialized(Int, Long, Float, Double) A](x: A)(ev: R[A]): A
def one[@specialized(Int, Long, Float, Double) A](ev: R[A]): A
def plus[@specialized(Int, Long, Float, Double) A](x: A, y: A)(ev: R[A]): A
def pow[@specialized(Int, Long, Float, Double) A](a: A, n: Int)(ev: R[A]): A
def product[@specialized(Int, Long, Float, Double) A](as: IterableOnce[A])(ev: R[A]): A
def sum[@specialized(Int, Long, Float, Double) A](as: IterableOnce[A])(ev: R[A]): A
def sumN[@specialized(Int, Long, Float, Double) A](a: A, n: Int)(ev: R[A]): A
def times[@specialized(Int, Long, Float, Double) A](x: A, y: A)(ev: R[A]): A
def tryProduct[A](as: IterableOnce[A])(ev: R[A]): Option[A]
def trySum[A](as: IterableOnce[A])(ev: R[A]): Option[A]
def zero[@specialized(Int, Long, Float, Double) A](ev: R[A]): A