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. def and(that: cats.kernel.Eq[A]): cats.kernel.Eq[A]

    Permalink
    Definition Classes
    Eq
  5. final def asInstanceOf[T0]: T0

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    Permalink
    Definition Classes
    Order → Eq
  24. def on[B](f: (B) ⇒ A): cats.kernel.Order[B]

    Permalink
    Definition Classes
    Order → PartialOrder → Eq
  25. def or(that: cats.kernel.Eq[A]): cats.kernel.Eq[A]

    Permalink
    Definition Classes
    Eq
  26. def partialCompare(x: A, y: A): Double

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

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

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

    Permalink
    Definition Classes
    PartialOrder
  30. def reverse: cats.kernel.Order[A]

    Permalink
    Definition Classes
    Order → PartialOrder
  31. def sign(a: A): Sign

    Permalink

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

  32. def toOrdering: Ordering[A]

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

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

    Permalink
    Definition Classes
    PartialOrder
  35. def whenEqual(o: cats.kernel.Order[A]): cats.kernel.Order[A]

    Permalink
    Definition Classes
    Order

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