[Go to CFHT Home Page] Man Pages
Back to Software Index  BORDER=0Manpage Top Level
    isnan(3C) manual page Table of Contents

Name

isnan, isnand, isnanf, finite, fpclass, unordered - determine type of floating-point number

Synopsis

#include <ieeefp.h>

int isnand(double dsrc);

int isnanf(float fsrc);

int finite(double dsrc);

fpclass_t fpclass(double dsrc);

int unordered(double dsrc1, double dsrc2);

#include <math.h>

int isnan(double dsrc);

MT-Level

MT-Safe

Description

The functionalty of isnan() is identical to that of isnand().

isnanf() is implemented as a macro included in the <ieeefp.h> header.

fpclass() returns the class the dsrc belongs to. The 10 possible classes are as follows:

FP_SNAN
signaling NaN
FP_QNAN
quiet NaN
FP_NINF
negative infinity
FP_PINF
positive infinity
FP_NDENORM
negative denormalized non-zero
FP_PDENORM
positive denormalized non-zero
FP_NZERO
negative zero
FP_PZERO
positive zero
FP_NNORM
negative normalized non-zero
FP_PNORM
positive normalized non-zero

None of these routines generate any exception, even for signaling NaNs.

Return Values

isnan(), isnand(), and isnanf() return true (1) if the argument dsrc or fsrc is a NaN; otherwise they return false (0).

finite() returns true (1) if the argument dsrc is neither infinity nor NaN; otherwise it returns false (0).

unordered() returns true (1) if one of its two arguments is unordered with respect to the other argument. This is equivalent to reporting whether either argument is NaN. If neither of the arguments is NaN, false (0) is returned.

See Also

fpgetround(3C)


Table of Contents