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

Abstract Value Members

  1. abstract def div(x: A, y: A): A
    Definition Classes
    MultiplicativeGroup
  2. abstract def gcd(a: A, b: A)(implicit ev: Eq[A]): A
    Definition Classes
    GCDRing
  3. abstract def getClass(): Class[_ <: AnyRef]
    Definition Classes
    Any
  4. abstract def lcm(a: A, b: A)(implicit ev: Eq[A]): A
    Definition Classes
    GCDRing
  5. abstract def negate(x: A): A
    Definition Classes
    AdditiveGroup
  6. abstract def one: A
    Definition Classes
    MultiplicativeMonoid
  7. abstract def plus(x: A, y: A): A
    Definition Classes
    AdditiveSemigroup
  8. abstract def times(x: A, y: A): A
    Definition Classes
    MultiplicativeSemigroup
  9. 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 emod(a: A, b: A): A
    Definition Classes
    FieldEuclideanRing
  7. def equals(arg0: Any): Boolean
    Definition Classes
    Any
  8. def equot(a: A, b: A): A
    Definition Classes
    FieldEuclideanRing
  9. def equotmod(a: A, b: A): (A, A)
    Definition Classes
    FieldEuclideanRing
  10. def euclideanFunction(a: A): BigInt
    Definition Classes
    FieldEuclideanRing
  11. def fromBigInt(n: BigInt): A
    Definition Classes
    Ring
  12. def fromDouble(a: Double): A
    Definition Classes
    Field
  13. def fromInt(n: Int): A
    Definition Classes
    Ring
  14. def hashCode(): Int
    Definition Classes
    Any
  15. final def isInstanceOf[T0]: Boolean
    Definition Classes
    Any
  16. def isOne(a: A)(implicit ev: algebra.Eq[A]): Boolean
    Definition Classes
    MultiplicativeMonoid
  17. def isZero(a: A)(implicit ev: algebra.Eq[A]): Boolean
    Definition Classes
    AdditiveMonoid
  18. def minus(x: A, y: A): A
    Definition Classes
    AdditiveGroup
  19. def multiplicative: CommutativeGroup[A]
    Definition Classes
    MultiplicativeCommutativeGroup → MultiplicativeCommutativeMonoid → MultiplicativeCommutativeSemigroup → MultiplicativeGroup → MultiplicativeMonoid → MultiplicativeSemigroup
  20. def positivePow(a: A, n: Int): A
    Attributes
    protected[this]
    Definition Classes
    MultiplicativeSemigroup
  21. def positiveSumN(a: A, n: Int): A
    Attributes
    protected[this]
    Definition Classes
    AdditiveSemigroup
  22. def pow(a: A, n: Int): A
    Definition Classes
    MultiplicativeGroup → MultiplicativeMonoid → MultiplicativeSemigroup
  23. def product(as: TraversableOnce[A]): A
    Definition Classes
    MultiplicativeMonoid
  24. def reciprocal(x: A): A
    Definition Classes
    MultiplicativeGroup
  25. def sum(as: TraversableOnce[A]): A
    Definition Classes
    AdditiveMonoid
  26. def sumN(a: A, n: Int): A
    Definition Classes
    AdditiveGroup → AdditiveMonoid → AdditiveSemigroup
  27. def toString(): String
    Definition Classes
    Any
  28. def tryProduct(as: TraversableOnce[A]): Option[A]
    Definition Classes
    MultiplicativeMonoid → MultiplicativeSemigroup
  29. def trySum(as: TraversableOnce[A]): Option[A]
    Definition Classes
    AdditiveMonoid → AdditiveSemigroup

Inherited from EuclideanRing[A]

Inherited from GCDRing[A]

Inherited from algebra.ring.Field[A]

Inherited from MultiplicativeCommutativeGroup[A]

Inherited from algebra.ring.MultiplicativeGroup[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 Any

Ungrouped