NAME
fpgetmask
,
fpgetprec
, fpgetround
,
fpgetsticky
, fpsetmask
,
fpsetprec
, fpsetround
,
fpsetsticky
—
IEEE FP mode control
LIBRARY
library “libc”
SYNOPSIS
#include
<ieeefp.h>
fp_except_t
fpgetmask
(void);
fp_prec_t
fpgetprec
(void);
fp_rnd_t
fpgetround
(void);
fp_except_t
fpgetsticky
(void);
fp_except_t
fpsetmask
(fp_except_t
mask);
fp_prec_t
fpsetprec
(fp_prec_t
prec);
fp_rnd_t
fpsetround
(fp_rnd_t
rnd_dir);
fp_except_t
fpsetsticky
(fp_except_t
sticky);
DESCRIPTION
A rounding mode fp_rnd_t is one of:FP_RZ |
rounding towards zero |
FP_RM |
rounding down to (Minus infinity) |
FP_RN |
rounding to nearest |
FP_RP |
rounding down to (Plus infinity) |
FP_RN
.
An fp_except_t value is a bitmask specifying an exception type and containing any of the values listed below.
FP_X_INV |
Invalid Operation |
FP_X_DZ |
Division by zero |
FP_X_OFL |
Overflow |
FP_X_UFL |
Underflow |
FP_X_IMP |
Imprecision (inexact) |
FP_X_IOV |
Integer Overflow |
An fp_prec_t specifies the precision of the floating point operations listed below.
FP_PS |
24 bit
(single-precision) |
FP_PRS |
reserved |
FP_PD |
53 bit
(double-precision) |
FP_PE |
64 bit
(extended-precision) |
The
fpsetmask
()
function will set the current exception mask, i.e., it will cause future
operations with the specified result status to raise the
SIGFPE
exception. The
fpgetmask
()
function will return the current exception mask.
The
fpgetprec
()
function will return the current floating point precision. The
fpsetprec
()
function will set the floating point precision and will return the previous
precision.
The
fpsetround
()
function will cause future operations to use the specified dynamic rounding
mode. The
fpgetround
()
function will return the current rounding mode.
- Note:
- On some architectures, instructions can optionally specify static rounding modes and exception enables that will supersede the specified dynamic mode. On other architectures, these features may not be fully supported.
A “sticky” status word may be
maintained in which a bit is set every time an exceptional floating point
condition is encountered, whether or not a SIGFPE
is
generated. The
fpsetsticky
()
function will set or clear the specified exception history bits. The
fpgetsticky
()
function will return the exception history bits.
RETURN VALUES
The fpgetround
() and
fpsetround
() functions return the (previous)
rounding mode. The fpgetmask
(),
fpsetmask
(), fpgetsticky
(),
and fpsetsticky
() functions return the (previous)
exception mask and exception history bits.
SEE ALSO
BUGS
There is no way to return an unsupported value. Not all processors support all the modes. These interfaces are deprecated and the ones in fenv(3) should be used, although the interfaces in fenv(3) don't support getting or setting the precision.