finite(3)

finite3

Classify a floating-point number

Part of fpclassify(3).

Usage

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

Library

Math Library (libm, -lm)

Overview

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 symbol isnanf() is provided as an alias to isnan() for compatibility, and its use is deprecated. Similarly, finite() and finitef() are deprecated versions of isfinite().

Releases

85 releases since FreeBSD 2.0.5-RELEASE; the text changed 43 times.

  1. 2.0.5
  2. 2.1.5–2.2.8
  3. 2.2.9
  4. 3.0–3.2
  5. 3.3–3.5.1
  6. 4.0–4.2
  7. 4.3
  8. 4.4
  9. 4.5–4.11
  10. 5.0–5.2.1
  11. 5.3
  12. 6.0–6.3
  13. 6.4
  14. 7.0
  15. 7.1
  16. 7.2
  17. 7.3
  18. 7.4
  19. 8.0
  20. 8.1
  21. 8.2
  22. 8.3
  23. 8.4
  24. 9.0
  25. 9.1
  26. 9.2
  27. 9.3
  28. 10.0
  29. 10.1
  30. 10.2
  31. 10.3
  32. 10.4
  33. 11.0
  34. 11.1
  35. 11.2
  36. 11.3
  37. 11.4
  38. 12.0
  39. 12.1
  40. 12.2
  41. 12.3
  42. 12.4
  43. 13.0–13.2
  44. 13.3–16.0

Standards

The fpclassify(), isfinite(), isinf(), isnan(), and isnormal() macros conform to ISO/IEC 9899:1999 (“ISO C99”).

History

The fpclassify(), isfinite(), isinf(), isnan(), and isnormal() macros were added in FreeBSD 5.1. 3BSD introduced isinf() and isnan() functions, which accepted double arguments; these have been superseded by the macros described above.

From base 16.0-CURRENT-20261027-61c70dc16a79 in FreeBSD 16.0-CURRENT (2026-10-27). Parsed by carta from the page's mdoc source.