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`);

The `fpclassify`

() macro takes an argument
of `x` and returns one of the following manifest
constants:

`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.

The `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`

().

The `fpclassify`

(),
`isfinite`

(), `isinf`

(),
`isnan`

(), `isnormal`

(), and
`signbit`

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

() and `isnan`

()
functions, which accepted `double` arguments; these have
been superseded by the macros described above.

March 10, 2016 | OpenBSD-current |