Trait/Object

spire.algebra

Field

Related Docs: object Field | package algebra

Permalink

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, Serializable, Any
Known Subclasses
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. Serializable
  27. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. All

Abstract Value Members

  1. abstract def div(x: A, y: A): A

    Permalink
    Definition Classes
    MultiplicativeGroup
  2. abstract def gcd(a: A, b: A)(implicit ev: Eq[A]): A

    Permalink
    Definition Classes
    GCDRing
  3. abstract def getClass(): Class[_]

    Permalink
    Definition Classes
    Any
  4. abstract def lcm(a: A, b: A)(implicit ev: Eq[A]): A

    Permalink
    Definition Classes
    GCDRing
  5. abstract def negate(x: A): A

    Permalink
    Definition Classes
    AdditiveGroup
  6. abstract def one: A

    Permalink
    Definition Classes
    MultiplicativeMonoid
  7. abstract def plus(x: A, y: A): A

    Permalink
    Definition Classes
    AdditiveSemigroup
  8. abstract def times(x: A, y: A): A

    Permalink
    Definition Classes
    MultiplicativeSemigroup
  9. abstract def zero: A

    Permalink
    Definition Classes
    AdditiveMonoid

Concrete Value Members

  1. final def !=(arg0: Any): Boolean

    Permalink
    Definition Classes
    Any
  2. final def ##(): Int

    Permalink
    Definition Classes
    Any
  3. final def ==(arg0: Any): Boolean

    Permalink
    Definition Classes
    Any
  4. def additive: CommutativeGroup[A]

    Permalink
    Definition Classes
    AdditiveCommutativeGroup → AdditiveCommutativeMonoid → AdditiveCommutativeSemigroup → AdditiveGroup → AdditiveMonoid → AdditiveSemigroup
  5. final def asInstanceOf[T0]: T0

    Permalink
    Definition Classes
    Any
  6. def emod(a: A, b: A): A

    Permalink
    Definition Classes
    FieldEuclideanRing
  7. def equals(arg0: Any): Boolean

    Permalink
    Definition Classes
    Any
  8. def equot(a: A, b: A): A

    Permalink
    Definition Classes
    FieldEuclideanRing
  9. def equotmod(a: A, b: A): (A, A)

    Permalink
    Definition Classes
    FieldEuclideanRing
  10. def euclideanFunction(a: A): BigInt

    Permalink
    Definition Classes
    FieldEuclideanRing
  11. def fromBigInt(n: BigInt): A

    Permalink
    Definition Classes
    Ring
  12. def fromDouble(a: Double): A

    Permalink
    Definition Classes
    Field
  13. def fromInt(n: Int): A

    Permalink
    Definition Classes
    Ring
  14. def hashCode(): Int

    Permalink
    Definition Classes
    Any
  15. final def isInstanceOf[T0]: Boolean

    Permalink
    Definition Classes
    Any
  16. def isOne(a: A)(implicit ev: algebra.Eq[A]): Boolean

    Permalink
    Definition Classes
    MultiplicativeMonoid
  17. def isZero(a: A)(implicit ev: algebra.Eq[A]): Boolean

    Permalink
    Definition Classes
    AdditiveMonoid
  18. def minus(x: A, y: A): A

    Permalink
    Definition Classes
    AdditiveGroup
  19. def multiplicative: CommutativeGroup[A]

    Permalink
    Definition Classes
    MultiplicativeCommutativeGroup → MultiplicativeCommutativeMonoid → MultiplicativeCommutativeSemigroup → MultiplicativeGroup → MultiplicativeMonoid → MultiplicativeSemigroup
  20. def positivePow(a: A, n: Int): A

    Permalink
    Attributes
    protected[this]
    Definition Classes
    MultiplicativeSemigroup
  21. def positiveSumN(a: A, n: Int): A

    Permalink
    Attributes
    protected[this]
    Definition Classes
    AdditiveSemigroup
  22. def pow(a: A, n: Int): A

    Permalink
    Definition Classes
    MultiplicativeGroup → MultiplicativeMonoid → MultiplicativeSemigroup
  23. def product(as: TraversableOnce[A]): A

    Permalink
    Definition Classes
    MultiplicativeMonoid
  24. def reciprocal(x: A): A

    Permalink
    Definition Classes
    MultiplicativeGroup
  25. def sum(as: TraversableOnce[A]): A

    Permalink
    Definition Classes
    AdditiveMonoid
  26. def sumN(a: A, n: Int): A

    Permalink
    Definition Classes
    AdditiveGroup → AdditiveMonoid → AdditiveSemigroup
  27. def toString(): String

    Permalink
    Definition Classes
    Any
  28. def tryProduct(as: TraversableOnce[A]): Option[A]

    Permalink
    Definition Classes
    MultiplicativeMonoid → MultiplicativeSemigroup
  29. def trySum(as: TraversableOnce[A]): Option[A]

    Permalink
    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 Serializable

Inherited from Any

Ungrouped