/C

# islessgreater

Defined in header `<math.h>`
`#define islessgreater(x, y) /* implementation defined */`
(since C99)

Determines if the floating point number `x` is less than or greater than the floating-point number `y`, without setting floating-point exceptions.

### Parameters

 x - floating point value y - floating point value

### Return value

Nonzero integral value if `x < y || x > y`, `​0​` otherwise.

### Notes

The built-in `operator<` and `operator>` for floating-point numbers may raise `FE_INVALID` if one or both of the arguments is NaN. This function is a "quiet" version of the expression `x < y || x > y`. The macro does not evaluate x and y twice.

### Example

```#include <stdio.h>
#include <math.h>

int main(void)
{
printf("islessgreater(2.0,1.0)      = %d\n", islessgreater(2.0,1.0));
printf("islessgreater(1.0,2.0)      = %d\n", islessgreater(1.0,2.0));
printf("islessgreater(1.0,1.0)      = %d\n", islessgreater(1.0,1.0));
printf("islessgreater(INFINITY,1.0) = %d\n", islessgreater(INFINITY,1.0));
printf("islessgreater(1.0,NAN)      = %d\n", islessgreater(1.0,NAN));

return 0;
}```

Possible output:

```islessgreater(2.0,1.0)      = 1
islessgreater(1.0,2.0)      = 1
islessgreater(1.0,1.0)      = 0
islessgreater(INFINITY,1.0) = 1
islessgreater(1.0,NAN)      = 0```

### References

• C11 standard (ISO/IEC 9899:2011):
• 7.12.14.5 The islessgreater macro (p: 261)
• F.10.11 Comparison macros (p: 531)
• C99 standard (ISO/IEC 9899:1999):
• 7.12.14.5 The islessgreater macro (p: 241-242)

 isless (C99) checks if the first floating-point argument is less than the second (function macro) isgreater (C99) checks if the first floating-point argument is greater than the second (function macro) C++ documentation for `islessgreater`