FPCLASSIFY(3) | Library Functions Manual | FPCLASSIFY(3) |

`fpclassify`

, `isfinite`

,
`isinf`

, `isnan`

,
`isnormal`

, `signbit`

,
`finite`

, `finitef`

,
`isinff`

, `isnanf`

—
classify a floating-point number

`#include <math.h>`

`int`

`fpclassify`

(`real-floating
x`);

`int`

`isfinite`

(`real-floating
x`);

`int`

`isinf`

(`real-floating
x`);

`int`

`isnan`

(`real-floating
x`);

`int`

`isnormal`

(`real-floating
x`);

`int`

`signbit`

(`real-floating
x`);

`fpclassify`

() macro takes an argument of
`FP_INFINITE`

- Indicates that
`x`is an infinite number. `FP_NAN`

- Indicates that
`x`is not a number (NaN). `FP_NORMAL`

- Indicates that
`x`is a normalized number. `FP_SUBNORMAL`

- Indicates that
`x`is a denormalized number. `FP_ZERO`

- Indicates that
`x`is zero (0 or -0).

The `isfinite`

() macro returns a non-zero
value if and only if its argument has a finite (zero, subnormal, or normal)
value.

The `isinf`

(),
`isnan`

(), and `isnormal`

()
macros return non-zero if and only if `x` is an
infinity, NaN, or a non-zero normalized number, respectively.

The `signbit`

() macro takes an argument of
`x` and returns non-zero if the value of its sign is
negative, otherwise 0.

`fpclassify`

(), `isfinite`

(),
`isinf`

(), `isnan`

(),
`isnormal`

(), and `signbit`

()
macros conform to ISO/IEC 9899:1999
(“ISO C99”).
The symbols `isinff`

(), and
`isnanf`

() are provided as compatibility aliases to
`isinf`

(), and `isnan`

(),
respectively, and their uses are deprecated. Similarly,
`finite`

() and `finitef`

() are
deprecated versions of `isfinite`

().

`fpclassify`

(), `isfinite`

(),
`isinf`

(), `isnan`

(),
`isnormal`

(), and `signbit`

()
macros were added in OpenBSD 4.4.
3BSD introduced `isinf`

() and
`isnan`

() functions, which accepted
March 10, 2016 | OpenBSD-current |