isunordered

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

Determines if the floating point numbers x and y are unordered, that is, one or both are NaN and thus cannot be meaningfully compared with each other.

Parameters

x - floating point value
y - floating point value

Return value

Nonzero integral value if either x or y is NaN, ​0​ otherwise.

Example

#include <stdio.h>
#include <math.h>
 
int main(void)
{
    printf("isunordered(NAN,1.0) = %d\n", isunordered(NAN,1.0));
    printf("isunordered(1.0,NAN) = %d\n", isunordered(1.0,NAN));
    printf("isunordered(NAN,NAN) = %d\n", isunordered(NAN,NAN));
    printf("isunordered(1.0,0.0) = %d\n", isunordered(1.0,0.0));
 
    return 0;
}

Possible output:

isunordered(NAN,1.0) = 1
isunordered(1.0,NAN) = 1
isunordered(NAN,NAN) = 1
isunordered(1.0,0.0) = 0

References

See also

fpclassify
(C99)
classifies the given floating-point value
(function macro)
isnan
(C99)
checks if the given number is NaN
(function macro)
C++ documentation for isunordered

© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/w/c/numeric/math/isunordered