isnan
, isnanf
, isinf
, isinff
, finite
, finitef
—test for exceptional numbers#include <ieeefp.h> int isnan(double arg); int isinf(double arg); int finite(double arg); int isnanf(float arg); int isinff(float arg); int finitef(float arg);
Description
These functions provide information on the floating-point
argument supplied.
There are five major number formats:
zero
subnormal
normal
infinity
NAN
isnan
returns 1 if the argument is a nan. isinf
returns 1 if the argument is infinity. finite
returns 1 if the
argument is zero, subnormal or normal.
The isnanf
, isinff
and finitef
functions perform the same
operations as their isnan
, isinf
and finite
counterparts, but on single-precision floating-point numbers.
It should be noted that the C99 standard dictates that isnan
and isinf
are macros that operate on multiple types of
floating-point. The SUSv2 standard declares isnan
as
a function taking double. Newlib has decided to declare
them both as macros in math.h and as functions in ieeefp.h.