ISGREATER(3) | Linux Programmer's Manual | ISGREATER(3) |
NAME
isgreater, isgreaterequal, isless, islessequal, islessgreater, isunordered - floating-point relational tests without exception for NaNSYNOPSIS
#include<math.h>
int isgreater( x , y );
int isgreaterequal( x , y );
int isless( x , y );
int islessequal( x , y );
int islessgreater( x , y );
int isunordered( x , y );
Feature Test Macro Requirements for glibc (see feature_test_macros(7)):
_XOPEN_SOURCE >= 600 || _ISOC99_SOURCE || _POSIX_C_SOURCE >= 200112L;
or
cc -std=c99
DESCRIPTION
The normal relation operations (like <, "less than") will fail if one of the operands is NaN. This will cause an exception. To avoid this, C99 defines the macros listed below.- isgreater()
- determines (x) > (y) without an exception if x or y is NaN.
- isgreaterequal()
- determines (x) >= (y) without an exception if x or y is NaN.
- isless()
- determines (x) < (y) without an exception if x or y is NaN.
- islessequal()
- determines (x) <= (y) without an exception if x or y is NaN.
- islessgreater()
- determines (x) < (y) || (x) > (y) without an exception if x or y is NaN. This macro is not equivalent to x != y because that expression is true if x or y is NaN.
- isunordered()
- determines whether its arguments are unordered, that is, whether at least one of the arguments is a NaN.
RETURN VALUE
The macros other than isunordered() return the result of the relational comparison; these macros return 0 if either argument is a NaN.ERRORS
No errors occur.CONFORMING TO
C99, POSIX.1-2001.NOTES
Not all hardware supports these functions, and where hardware support isn't provided, they will be emulated by macros. This will result in a performance penalty. Don't use these functions if NaN is of no concern for you.SEE ALSO
fpclassify(3), isnan(3)COLOPHON
This page is part of release 3.53 of the Linux man-pages project. A description of the project, and information about reporting bugs, can be found at http://www.kernel.org/doc/man-pages/.2012-05-06 |