Floating-point environment
The floating-point environment is the set of floating-point status flags and control modes supported by the implementation. It is thread-local, each thread inherits the initial state of its floating-point environment from the parent thread. Floating-point operations modify the floating-point status flags to indicate abnormal results or auxiliary information. The state of floating-point control modes affects the outcomes of some floating-point operations.
The floating-point environment access and modification is only meaningful when
#pragma STDC FENV_ACCESS is set to ON
. Otherwise the implementation is free to assume that floating-point control modes are always the default ones and that floating-point status flags are never tested or modified. In practice, few current compilers, such as HP aCC, Oracle Studio, and IBM XL, support the #pragma explicitly, but most compilers allow meaningful access to the floating-point environment anyway.
Contents
[edit] Types
<fenv.h>
[edit] Functions
(function) [edit]
(function) [edit]
(function) [edit]
[edit] Macros
[edit] References
- C23 standard (ISO/IEC 9899:2024):
- 7.6 Floating-point environment <fenv.h> (p: TBD)
- 7.31.4 Floating-point environment <fenv.h> (p: TBD)
- C17 standard (ISO/IEC 9899:2018):
- 7.6 Floating-point environment <fenv.h> (p: 150-156)
- 7.31.4 Floating-point environment <fenv.h> (p: 332)
- C11 standard (ISO/IEC 9899:2011):
- 7.6 Floating-point environment <fenv.h> (p: 206-215)
- 7.31.4 Floating-point environment <fenv.h> (p: 455)
- C99 standard (ISO/IEC 9899:1999):
- 7.6 Floating-point environment <fenv.h> (p: 187-196)