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
Return an Eq that gives the result of the and of this and that note this is idempotent
Return an Eq that gives the result of the and of this and that note this is idempotent
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.
Defines a partial order on B
by mapping B
to A
using f
and using A
s order to order B
.
Defines a partial order on B
by mapping B
to A
using f
and using A
s order to order B
.
Return an Eq that gives the result of the or of this and that Note this is idempotent
Return an Eq that gives the result of the or of this and that Note this is idempotent
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.
Defines a partial order on A
where all arrows switch direction.
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)