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
Returns true if x
= y
, false otherwise.
Returns true if x
= y
, false otherwise.
Returns true if x
> y
, false otherwise.
Returns true if x
>= y
, false otherwise.
Returns true if x
< y
, false otherwise.
Returns true if x
<= y
, false otherwise.
Returns false
if x
and y
are equivalent, true
otherwise.
Returns false
if x
and y
are equivalent, true
otherwise.
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.
Returns Some(x) if x >= y, Some(y) if x < y, otherwise None.
Returns Some(x) if x <= y, Some(y) if x > y, otherwise None.
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
The
PartialOrder
type class is used to define a partial ordering on some typeA
.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 Double 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)