NAME
fenv — floating-point environment macros and functions
DESCRIPTION
The header
<fenv.h>
declares two types and several macros and functions to provide access
to the floating-point environment.
The
floating-point environment
refers collectively to the floating-point status flags and control
modes.
A
floating-point status flag
is a system variable whose value is set (but never cleared) when
a floating-point exception is raised, which occurs
as a side effect of exceptional floating-point
arithmetic to provide auxiliary information.
A
floating-point control mode
is a system variable whose value may be set by the user to affect the
subsequent behavior of floating-point arithmetic; on HP 9000 and
HP Integrity servers the
control modes include the rounding direction mode,
the gradual/flush-to-zero underflow mode,
and the trap enables.
The following types are defined:
- fenv_t
Represents the entire floating-point environment.
- fexcept_t
Represents the floating-point exception flags collectively.
The following macros represent the floating-point status flags.
They are defined as integral constant expressions with values
such that bitwise ORs of all combinations of the macros result
in distinct values.
- FE_INEXACT
The inexact exception.
- FE_DIVBYZERO
The division-by-zero exception.
- FE_UNDERFLOW
The underflow exception.
- FE_OVERFLOW
The overflow exception.
- FE_INVALID
The invalid operation exception.
- FE_ALL_EXCEPT
The bitwise OR of all exception macros.
The following macros represent the rounding direction modes.
They are defined as integral constant expressions with
distinct nonnegative values.
- FE_TONEAREST
The round-to-nearest rounding direction mode.
- FE_UPWARD
The round-toward-positive-infinity rounding direction mode.
- FE_DOWNWARD
The round-toward-negative-infinity rounding direction mode.
- FE_TOWARDZERO
The round-toward-zero rounding direction mode.
The following macro is defined as a pointer to const-qualified
fenv_t:
- FE_DFL_ENV
The default floating-point environment.
To the ISO/IEC C99 specified facilities, the HP implementation
adds four HP-specific
functions:
fegetflushtozero(),
fesetflushtozero(),
fegettrapenable(),
and
fesettrapenable().
SEE ALSO
feclearexcept(3M),
fegetexceptflag(3M),
feraiseexcept(3M),
fesetexceptflag(3M),
fetestexcept(3M),
fegetround(3M),
fesetround(3M),
fegetenv(3M),
feholdexcept(3M),
fesetenv(3M),
feupdateenv(3M),
fegetflushtozero(3M),
fesetflushtozero(3M),
fegettrapenable(3M),
fesettrapenable(3M),
math(5).
STANDARDS CONFORMANCE
<fenv.h>
: ISO/IEC C99 (including Annex F, "IEC 60559 floating-point arithmetic")