islessgreater
From cppreference.com
C
Concurrency support (C11)
Common mathematical functions
Functions
Basic operations
Maximum/minimum operations
(C23)
(C23)
(C23)
(C23)
(C23)
Exponential functions
Power functions
Trigonometric and hyperbolic functions
Nearest integer floating-point
Floating-point manipulation
Narrowing operations
Quantum and quantum exponent
(C23)
(C23)
(C23)
(C23)
Decimal re-encoding functions
(C23)
(C23)
(C23)
(C23)
Total order and payload functions
(C23)
(C23)
(C23)
(C23)
Classification
(C99)
(C23)
(C99)
(C99)
(C99)
(C99)
(C99)
(C23)
(C23)
(C99)
(C99)
(C99)
(C99)
islessgreater
(C99)
(C99)
(C23)
(C23)
Error and gamma functions
Types
(C99)(C99)
(C99)(C99)
(C23)(C23)
Macro constants
Special floating-point values
(C99)(C99)(C23)
(C99)(C23)
(C99)(C23)
Arguments and return values
(C99)(C99)
(C99)(C99)(C99)(C99)(C99)
(C23)(C23)
(C23)(C23)(C23)(C23)(C23)
Error handling
(C99)(C99)
(C99)
Fast operation indicators
(C99)(C99)
(C23)(C23)(C23)(C23)
(C23)(C23)(C23)(C23)
(C23)(C23)(C23)(C23)
(C99)(C23)
(C23)(C23)(C23)(C23)
(C23)(C23)(C23)(C23)
(C23)(C23)(C23)(C23)
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.
[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
Run this code
#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
- C23 standard (ISO/IEC 9899:2024):
- 7.12.14.5 The islessgreater macro (p: TBD)
- F.10.11 Comparison macros (p: TBD)
- C17 standard (ISO/IEC 9899:2018):
- 7.12.14.5 The islessgreater macro (p: TBD)
- F.10.11 Comparison macros (p: TBD)
- 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)
[edit] See also
(C99)
(function macro) [edit]
C++ documentation for islessgreater