Trait/Object

spire.algebra

Signed

Related Docs: object Signed | package algebra

Permalink

trait Signed[A] extends Order[A]

A trait for linearly ordered additive commutative monoid. The following laws holds:

(1) if a <= b then a + c <= b + c (linear order), (2) signum(x) = -1 if x < 0, signum(x) = 1 if x > 0, signum(x) = 0 otherwise,

Negative elements only appear when scalar is a additive abelian group, and then (3) abs(x) = -x if x < 0, or x otherwise,

Laws (1) and (2) lead to the triange inequality:

(4) abs(a + b) <= abs(a) + abs(b)

Signed should never be extended in implementations, rather the AdditiveCMonoid and AdditiveAbGroup subtraits. We cannot use self-types to express the constraint self: AdditiveCMonoid => (interaction with specialization?).

Linear Supertypes
cats.kernel.Order[A], cats.kernel.PartialOrder[A], cats.kernel.Eq[A], Serializable, Serializable, Any
Known Subclasses
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. Signed
  2. Order
  3. PartialOrder
  4. Eq
  5. Serializable
  6. Serializable
  7. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. All

Abstract Value Members

  1. abstract def abs(a: A): A

    Permalink

    An idempotent function that ensures an object has a non-negative sign.

  2. abstract def compare(x: A, y: A): Int

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

    Permalink
    Definition Classes
    Any
  4. abstract def signum(a: A): Int

    Permalink

    Returns 0 if a is 0, 1 if a is positive, and -1 is a is negative.

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. final def asInstanceOf[T0]: T0

    Permalink
    Definition Classes
    Any
  5. def comparison(x: A, y: A): Comparison

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

    Permalink
    Definition Classes
    Any
  7. def eqv(x: A, y: A): Boolean

    Permalink
    Definition Classes
    Order → PartialOrder → Eq
  8. def gt(x: A, y: A): Boolean

    Permalink
    Definition Classes
    Order → PartialOrder
  9. def gteqv(x: A, y: A): Boolean

    Permalink
    Definition Classes
    Order → PartialOrder
  10. def hashCode(): Int

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

    Permalink
    Definition Classes
    Any
  12. def isSignNegative(a: A): Boolean

    Permalink
  13. def isSignNonNegative(a: A): Boolean

    Permalink
  14. def isSignNonPositive(a: A): Boolean

    Permalink
  15. def isSignNonZero(a: A): Boolean

    Permalink
  16. def isSignPositive(a: A): Boolean

    Permalink
  17. def isSignZero(a: A): Boolean

    Permalink
  18. def lt(x: A, y: A): Boolean

    Permalink
    Definition Classes
    Order → PartialOrder
  19. def lteqv(x: A, y: A): Boolean

    Permalink
    Definition Classes
    Order → PartialOrder
  20. def max(x: A, y: A): A

    Permalink
    Definition Classes
    Order
  21. def min(x: A, y: A): A

    Permalink
    Definition Classes
    Order
  22. def neqv(x: A, y: A): Boolean

    Permalink
    Definition Classes
    Order → Eq
  23. def partialCompare(x: A, y: A): Double

    Permalink
    Definition Classes
    Order → PartialOrder
  24. def partialComparison(x: A, y: A): Option[Comparison]

    Permalink
    Definition Classes
    PartialOrder
  25. def pmax(x: A, y: A): Option[A]

    Permalink
    Definition Classes
    PartialOrder
  26. def pmin(x: A, y: A): Option[A]

    Permalink
    Definition Classes
    PartialOrder
  27. def sign(a: A): Sign

    Permalink

    Returns Zero if a is 0, Positive if a is positive, and Negative is a is negative.

  28. def toOrdering: Ordering[A]

    Permalink
    Definition Classes
    Order
  29. def toString(): String

    Permalink
    Definition Classes
    Any
  30. def tryCompare(x: A, y: A): Option[Int]

    Permalink
    Definition Classes
    PartialOrder

Inherited from cats.kernel.Order[A]

Inherited from cats.kernel.PartialOrder[A]

Inherited from cats.kernel.Eq[A]

Inherited from Serializable

Inherited from Serializable

Inherited from Any

Ungrouped