spire.algebra

Semiring

trait Semiring[A] extends AdditiveMonoid[A] with MultiplicativeSemigroup[A]

Semiring is a ring without identities or an inverse. Thus, it has no negation, zero, or one.

A Semiring with an additive inverse (-) is a Rng. A Semiring with additive and multiplicative identities (0 and 1) is a Rig. A Semiring with all of the above is a Ring.

Linear Supertypes
Known Subclasses
Ordering
  1. Alphabetic
  2. By inheritance
Inherited
  1. Semiring
  2. MultiplicativeSemigroup
  3. AdditiveMonoid
  4. AdditiveSemigroup
  5. Any
  1. Hide All
  2. Show all
Learn more about member selection
Visibility
  1. Public
  2. All

Abstract Value Members

  1. abstract def getClass(): Class[_]

    Definition Classes
    Any
  2. abstract def plus(x: A, y: A): A

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

    Definition Classes
    MultiplicativeSemigroup
  4. 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: Monoid[A]

    Definition Classes
    AdditiveMonoidAdditiveSemigroup
  5. final def asInstanceOf[T0]: T0

    Definition Classes
    Any
  6. def equals(arg0: Any): Boolean

    Definition Classes
    Any
  7. def hashCode(): Int

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

    Definition Classes
    Any
  9. def isZero(a: A)(implicit ev: Eq[A]): Boolean

    Tests if a is zero.

    Tests if a is zero.

    Definition Classes
    AdditiveMonoid
  10. def multiplicative: Semigroup[A]

    Definition Classes
    MultiplicativeSemigroup
  11. def pow(a: A, n: Int): A

    Returns a multiplied with itself n times.

    Returns a multiplied with itself n times. For instance, a pow 3 === a * a * a. Since this is a semiring, there is no notion of a multiplicative identity, and so the exponent must be positive.

  12. def prodOption(as: TraversableOnce[A]): Option[A]

    Given a sequence of as, sum them using the semigroup and return the total.

    Given a sequence of as, sum them using the semigroup and return the total.

    If the sequence is empty, returns None. Otherwise, returns Some(total).

    Definition Classes
    MultiplicativeSemigroup
  13. def prodn(a: A, n: Int): A

    Return a multiplied with itself n times.

    Return a multiplied with itself n times.

    Definition Classes
    MultiplicativeSemigroup
  14. def prodnAboveOne(a: A, n: Int): A

    Attributes
    protected
    Definition Classes
    MultiplicativeSemigroup
  15. def sum(as: TraversableOnce[A]): A

    Given a sequence of as, sum them using the monoid and return the total.

    Given a sequence of as, sum them using the monoid and return the total.

    Definition Classes
    AdditiveMonoid
  16. def sumOption(as: TraversableOnce[A]): Option[A]

    Given a sequence of as, sum them using the semigroup and return the total.

    Given a sequence of as, sum them using the semigroup and return the total.

    If the sequence is empty, returns None. Otherwise, returns Some(total).

    Definition Classes
    AdditiveSemigroup
  17. def sumn(a: A, n: Int): A

    Return a added with itself n times.

    Return a added with itself n times.

    Definition Classes
    AdditiveMonoidAdditiveSemigroup
  18. def sumnAboveOne(a: A, n: Int): A

    Attributes
    protected
    Definition Classes
    AdditiveSemigroup
  19. def toString(): String

    Definition Classes
    Any

Inherited from MultiplicativeSemigroup[A]

Inherited from AdditiveMonoid[A]

Inherited from AdditiveSemigroup[A]

Inherited from Any

Ungrouped