trait Field[A] extends AlgebraField[A] with EuclideanRing[A]
Field type class. While algebra already provides one, we provide one in Spire
that integrates with the commutative ring hierarchy, in particular GCDRing
and EuclideanRing
.
On a field, all nonzero elements are invertible, so the remainder of the division is always 0. The Euclidean function can take an arbitrary value on nonzero elements (it is undefined for zero); for compatibility with the degree of polynomials, we use the constant 0.
The GCD and LCM are defined up to a unit; on a field, it means that either the GCD or LCM can be fixed arbitrarily. Some conventions with consistent defaults are provided in the spire.algebra.Field companion object.
Linear Supertypes
Known Subclasses
Ordering
- Alphabetic
- By Inheritance
Inherited
- Field
- EuclideanRing
- GCDRing
- Field
- MultiplicativeCommutativeGroup
- MultiplicativeGroup
- CommutativeRing
- CommutativeRng
- CommutativeRig
- MultiplicativeCommutativeMonoid
- CommutativeSemiring
- MultiplicativeCommutativeSemigroup
- Ring
- Rng
- AdditiveCommutativeGroup
- AdditiveGroup
- Rig
- MultiplicativeMonoid
- Semiring
- MultiplicativeSemigroup
- AdditiveCommutativeMonoid
- AdditiveCommutativeSemigroup
- AdditiveMonoid
- AdditiveSemigroup
- Serializable
- Any
- Hide All
- Show All
Visibility
- Public
- Protected
Abstract Value Members
- abstract def div(x: A, y: A): A
- Definition Classes
- MultiplicativeGroup
- abstract def gcd(a: A, b: A)(implicit ev: Eq[A]): A
- Definition Classes
- GCDRing
- abstract def getClass(): Class[_ <: AnyRef]
- Definition Classes
- Any
- abstract def lcm(a: A, b: A)(implicit ev: Eq[A]): A
- Definition Classes
- GCDRing
- 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 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 emod(a: A, b: A): A
- Definition Classes
- Field → EuclideanRing
- def equals(arg0: Any): Boolean
- Definition Classes
- Any
- def equot(a: A, b: A): A
- Definition Classes
- Field → EuclideanRing
- def equotmod(a: A, b: A): (A, A)
- Definition Classes
- Field → EuclideanRing
- def euclideanFunction(a: A): BigInt
- Definition Classes
- Field → EuclideanRing
- def fromBigInt(n: BigInt): A
- Definition Classes
- Ring
- def fromDouble(a: Double): A
- Definition Classes
- Field
- 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: CommutativeGroup[A]
- Definition Classes
- MultiplicativeCommutativeGroup → MultiplicativeCommutativeMonoid → MultiplicativeCommutativeSemigroup → MultiplicativeGroup → 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
- MultiplicativeGroup → MultiplicativeMonoid → MultiplicativeSemigroup
- def product(as: TraversableOnce[A]): A
- Definition Classes
- MultiplicativeMonoid
- def reciprocal(x: A): A
- Definition Classes
- MultiplicativeGroup
- 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