# PartialOrdering

trait PartialOrdering[T] extends Equiv[T]

A trait for representing partial orderings. It is important to distinguish between a type that has a partial order and a representation of partial ordering on some type. This trait is for representing the latter.

A partial ordering is a binary relation on a type `T`, exposed as the `lteq` method of this trait. This relation must be:

- reflexive: `lteq(x, x) == true`, for any `x` of type `T`. - anti-symmetric: if `lteq(x, y) == true` and `lteq(y, x) == true` then `equiv(x, y) == true`, for any `x` and `y` of type `T`. - transitive: if `lteq(x, y) == true` and `lteq(y, z) == true` then `lteq(x, z) == true`, for any `x`, `y`, and `z` of type `T`.

Additionally, a partial ordering induces an equivalence relation on a type `T`: `x` and `y` of type `T` are equivalent if and only if `lteq(x, y) && lteq(y, x) == true`. This equivalence relation is exposed as the `equiv` method, inherited from the Equiv trait.

Companion:
object
Source:
PartialOrdering.scala
trait Equiv[T]
class Object
trait Matchable
class Any
trait Ordering[T]
object ValueOrdering.type
object DurationIsOrdered.type
trait Numeric[T]
trait Fractional[T]
object DoubleIsFractional.type
object FloatIsFractional.type
trait Integral[T]
object BigIntIsIntegral.type
object ByteIsIntegral.type
object CharIsIntegral.type
object IntIsIntegral.type
object LongIsIntegral.type
object ShortIsIntegral.type
object BigDecimal.type
object BigInt.type
object Boolean.type
object Byte.type
trait CachedReverse[T]
object Int.type
object Char.type
object IeeeOrdering.type
object TotalOrdering.type
object IeeeOrdering.type
object TotalOrdering.type
object Long.type
object Short.type
object String.type
object Symbol.type
object Unit.type

## Value members

### Abstract methods

def lteq(x: T, y: T): Boolean

Returns `true` iff `x` comes before `y` in the ordering.

Returns `true` iff `x` comes before `y` in the ordering.

Source:
PartialOrdering.scala
def tryCompare(x: T, y: T): Option[Int]

Result of comparing `x` with operand `y`.

Result of comparing `x` with operand `y`. Returns `None` if operands are not comparable. If operands are comparable, returns `Some(r)` where - `r < 0` iff `x < y` - `r == 0` iff `x == y` - `r > 0` iff `x > y`

Source:
PartialOrdering.scala

### Concrete methods

def equiv(x: T, y: T): Boolean

Returns `true` iff `x` is equivalent to `y` in the ordering.

Returns `true` iff `x` is equivalent to `y` in the ordering.

Source:
PartialOrdering.scala
def gt(x: T, y: T): Boolean

Returns `true` iff `y` comes before `x` in the ordering and is not the same as `x`.

Returns `true` iff `y` comes before `x` in the ordering and is not the same as `x`.

Source:
PartialOrdering.scala
def gteq(x: T, y: T): Boolean

Returns `true` iff `y` comes before `x` in the ordering.

Returns `true` iff `y` comes before `x` in the ordering.

Source:
PartialOrdering.scala
def lt(x: T, y: T): Boolean

Returns `true` iff `x` comes before `y` in the ordering and is not the same as `y`.

Returns `true` iff `x` comes before `y` in the ordering and is not the same as `y`.

Source:
PartialOrdering.scala