( --
flag ) ( F:
r1 r2 r3 -- ) or
(
r1 r2 r3 --
flag )
If
r3 is positive,
flag is true if the absolute
value of (
r1 minus
r2) is less than
r3.
If
r3 is zero,
flag is true if the
implementation-dependent encoding of
r1 and
r2
are exactly identical (positive and negative zero are unequal if
they have distinct encodings).
If
r3 is negative,
flag is true if the absolute value
of (
r1 minus
r2) is less than the absolute value of
r3 times the sum of the absolute values of
r1 and
r2.
Rationale:
This provides the three types of "floating point equality"
in common use — "close" in absolute terms, exact equality
as represented, and "relatively close".