Next: , Previous: , Up: Arithmetic   [Contents][Index]


5.5.4 Numeric comparison

Note that the words that compare for equality (= <> 0= 0<> d= d<> d0= d0<>) work for for both signed and unsigned numbers.

<       n1 n2 – f        core       “less-than”
<=       n1 n2 – f        gforth       “less-or-equal”
<>       n1 n2 – f        core-ext       “not-equals”
=       n1 n2 – f        core       “equals”
>       n1 n2 – f        core       “greater-than”
>=       n1 n2 – f        gforth       “greater-or-equal”
0<       n – f        core       “zero-less-than”
0<=       n – f        gforth       “zero-less-or-equal”
0<>       n – f        core-ext       “zero-not-equals”
0=       n – f        core       “zero-equals”
0>       n – f        core-ext       “zero-greater-than”
0>=       n – f        gforth       “zero-greater-or-equal”
u<       u1 u2 – f        core       “u-less-than”
u<=       u1 u2 – f        gforth       “u-less-or-equal”
u>       u1 u2 – f        core-ext       “u-greater-than”
u>=       u1 u2 – f        gforth       “u-greater-or-equal”
within       u1 u2 u3 – f        core-ext       “within”

u2<u3 and u1 in [u2,u3) or: u2>=u3 and u1 not in [u3,u2). This works for unsigned and signed numbers (but not a mixture). Another way to think about this word is to consider the numbers as a circle (wrapping around from max-u to 0 for unsigned, and from max-n to min-n for signed numbers); now consider the range from u2 towards increasing numbers up to and excluding u3 (giving an empty range if u2=u3); if u1 is in this range, within returns true.

d<       d1 d2 – f        double       “d-less-than”
d<=       d1 d2 – f        gforth       “d-less-or-equal”
d<>       d1 d2 – f        gforth       “d-not-equals”
d=       d1 d2 – f        double       “d-equals”
d>       d1 d2 – f        gforth       “d-greater-than”
d>=       d1 d2 – f        gforth       “d-greater-or-equal”
d0<       d – f        double       “d-zero-less-than”
d0<=       d – f        gforth       “d-zero-less-or-equal”
d0<>       d – f        gforth       “d-zero-not-equals”
d0=       d – f        double       “d-zero-equals”
d0>       d – f        gforth       “d-zero-greater-than”
d0>=       d – f        gforth       “d-zero-greater-or-equal”
du<       ud1 ud2 – f        double-ext       “d-u-less-than”
du<=       ud1 ud2 – f        gforth       “d-u-less-or-equal”
du>       ud1 ud2 – f        gforth       “d-u-greater-than”
du>=       ud1 ud2 – f        gforth       “d-u-greater-or-equal”

Next: , Previous: , Up: Arithmetic   [Contents][Index]