Floating-point environment - cppreference.com (original) (raw)

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.

[edit] Types

fenv_t The type representing the entire floating-point environment
fexcept_t The type representing all floating-point status flags collectively

[edit] Functions

feclearexcept(C99) clears the specified floating-point status flags (function) [edit]
fetestexcept(C99) determines which of the specified floating-point status flags are set (function) [edit]
feraiseexcept(C99) raises the specified floating-point exceptions (function) [edit]
fegetexceptflagfesetexceptflag(C99)(C99) copies the state of the specified floating-point status flags from or to the floating-point environment (function) [edit]
fegetroundfesetround(C99)(C99) gets or sets rounding direction (function) [edit]
fegetenvfesetenv(C99) saves or restores the current floating-point environment (function) [edit]
feholdexcept(C99) saves the environment, clears all status flags and ignores all future errors (function) [edit]
feupdateenv(C99) restores the floating-point environment and raises the previously raise exceptions (function) [edit]

[edit] Macros

[edit] References

[edit] See also