t

# PartialOrder 

### Companion object PartialOrder

#### trait PartialOrder[A] extends Eq[A]

The `PartialOrder` type class is used to define a partial ordering on some type `A`.

A partial order is defined by a relation <=, which obeys the following laws:

• x <= x (reflexivity)
• if x <= y and y <= x, then x = y (anti-symmetry)
• if x <= y and y <= z, then x <= z (transitivity)

To compute both <= and >= at the same time, we use a Double number to encode the result of the comparisons x <= y and x >= y. The truth table is defined as follows:

x <= y

x >= y

result

note

true

true

0.0

(corresponds to x = y)

false

false

NaN

(x and y cannot be compared)

true

false

-1.0

(corresponds to x < y)

false

true

1.0

(corresponds to x > y)

Self Type
PartialOrder[A]
Source
PartialOrder.scala
Linear Supertypes
Eq[A], Serializable, Serializable, Any
Ordering
1. Alphabetic
2. By Inheritance
Inherited
1. PartialOrder
2. Eq
3. Serializable
4. Serializable
5. Any
1. Hide All
2. Show All
Visibility
1. Public
2. All

### Abstract Value Members

1. abstract def getClass(): Class[_]
Definition Classes
Any
2. abstract def partialCompare(x: A, y: A)

Result of comparing `x` with `y`.

Result of comparing `x` with `y`. Returns NaN if operands are not comparable. If operands are comparable, returns a Double whose sign is:

• negative iff `x < y`
• zero iff `x = y`
• positive iff `x > y`

### Concrete Value Members

1. final def !=(arg0: Any)
Definition Classes
Any
2. final def ##(): Int
Definition Classes
Any
3. final def ==(arg0: Any)
Definition Classes
Any
4. final def asInstanceOf[T0]: T0
Definition Classes
Any
5. def equals(arg0: Any)
Definition Classes
Any
6. def eqv(x: A, y: A)

Returns true if `x` = `y`, false otherwise.

Returns true if `x` = `y`, false otherwise.

Definition Classes
PartialOrderEq
7. def gt(x: A, y: A)

Returns true if `x` > `y`, false otherwise.

8. def gteqv(x: A, y: A)

Returns true if `x` >= `y`, false otherwise.

9. def hashCode(): Int
Definition Classes
Any
10. final def isInstanceOf[T0]
Definition Classes
Any
11. def lt(x: A, y: A)

Returns true if `x` < `y`, false otherwise.

12. def lteqv(x: A, y: A)

Returns true if `x` <= `y`, false otherwise.

13. def neqv(x: A, y: A)

Returns `false` if `x` and `y` are equivalent, `true` otherwise.

Returns `false` if `x` and `y` are equivalent, `true` otherwise.

Definition Classes
Eq
14. def partialComparison(x: A, y: A)

Like `partialCompare`, but returns a cats.kernel.Comparison instead of an Double.

Like `partialCompare`, but returns a cats.kernel.Comparison instead of an Double. Has the benefit of being able to pattern match on, but not as performant.

15. def pmax(x: A, y: A): Option[A]

Returns Some(x) if x >= y, Some(y) if x < y, otherwise None.

16. def pmin(x: A, y: A): Option[A]

Returns Some(x) if x <= y, Some(y) if x > y, otherwise None.

17. def toString(): String
Definition Classes
Any
18. def tryCompare(x: A, y: A): Option[Int]

Result of comparing `x` with `y`.

Result of comparing `x` with `y`. Returns None if operands are not comparable. If operands are comparable, returns Some[Int] where the Int sign is:

• negative iff `x < y`
• zero iff `x = y`
• positive iff `x > y`