islessgreater - cppreference.com (original) (raw)

| | | | | ---------------------------------------------------------- | | ----------- | | #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.

[edit] Parameters

x - floating-point value
y - floating-point value

[edit] Return value

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

[edit] 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.

[edit] Example

#include <math.h> #include <stdio.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

[edit] References

[edit] See also

| | checks if the first floating-point argument is less than the second (function macro) [edit] | | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | | | checks if the first floating-point argument is greater than the second (function macro) [edit] | | |