In OmniMark, you can compare two or more numeric expressions with a standard set of operators.

The following comparison operators are available:

- "=": tests the equality of the two numeric expressions
- "!=": tests whether the two numeric expressions are different
- "<=": tests whether the first numeric expression is less than or equal to the second
- "<": tests whether the first numeric expression is less than the second
- ">=": tests whether the first numeric expression is greater than or equal to the second
- ">": tests whether the first numeric expression is greater than the second

An unparenthesized comparison can consist of more than two parts, provided that the parts are compatible. The operator "!=" is never permitted in a multi-part comparison, and "<" or "<=" cannot be mixed with ">" or ">=".

A multi-part numeric comparison must consist of operators from either one or the other of the following sets (but not both):

- "=", "<", or "<="
- "=", ">", or ">="

For example, all of the following are valid multi-part numeric comparison tests:

do when a = b = c = d ... done do when a < b < c < d ... done do when a >= b >= c >= d ... done do when a <= b = c < d ... done do when a = b & b = c & c = d ... done do when a < b & b < c & c < d ... done do when a >= b & b >= c & c >= d ... done do when a <= b & b = c & c <d ... done

All of OmniMark's comparison operators can be overloaded and used to compare user defined data types created with records.