fegetflushtozero.3m (2010 09)
f
fegetflushtozero(3M) fegetflushtozero(3M)
NAME
fegetflushtozero( ) - get floating-point underflow mode
SYNOPSIS
#include <fenv.h>
int fegetflushtozero(void);
DESCRIPTION
The fegetflushtozero()
function retrieves the value representing the current underflow mode,
which is either IEEE-754-compliant (gradual) underflow mode or flush-to-zero mode.
The default underflow mode is IEEE-754-compliant.
Flush-to-zero mode, also known as fast underflow mode, is supported on most PA1.1 systems and on all
PA2.0 and Itnaium(R)-based systems. In IEEE-754-compliant mode, underflow cases may be handled by
trapping into the kernel, where the IEEE-mandated conversion of the result into a denormalized value or
zero is accomplished by software emulation. On PA-RISC systems, flush-to-zero mode allows the substitu-
tion of a zero for denormal operands and operation results, without trapping into the kernel. On HP
Integrity servers, flush-to-zero mode causes a zero to be substituted for denormal results (but not
operands), without trapping into the kernel. Flush-to-zero mode may offer a significant performance
improvement for some applications.
USAGE
To use this function, compile either with the default
-Ae option or with the -Aa
and -D_HPUX_SOURCE
options. Make sure your program includes <fenv.h>.
For Integrity servers, specify
+Ofenvaccess on the compiler command line or place the call to this
function under the effect of an affirmative FENV_ACCESS pragma:
#pragma STDC FENV_ACCESS ON
If the FENV_ACCESS pragma is placed outside of any top-level declarations in a file, the pragma will
apply to all declarations in the compilation following the pragma until another FENV_ACCESS pragma
is encountered or until the end of the file is reached.
If the
FENV_ACCESS pragma is placed at the beginning of a block (compound statement), the pragma
will apply until another FENV_ACCESS pragma is encountered or until the end of the block is reached.
For PA-RISC, you might need to use the
+Onomoveflops compiler option in order to prevent optimiza-
tions that can undermine the specified behavior of this function.
Link in the math library by specifying
-lm on the compiler or linker command line.
For more information, see the HP-UX floating-point guide for HP Integrity servers at the following site:
http://www.hp.com/go/fp
.
RETURN VALUE
The
fegetflushtozero() function returns zero if the current underflow mode is IEEE-754-
compliant. The function returns 1 if the current underflow mode is flush-to-zero.
On systems that do not support flush-to-zero mode, this function returns an undefined value.
ERRORS
No errors are defined.
EXAMPLES
Save the current underflow mode, set flush-to-zero mode, and restore the previous mode.
#include <fenv.h>
/*...*/
int fm_saved;
fm_saved = fegetflushtozero();
fesetflushtozero(1);
/*...*/
fesetflushtozero(fm_saved);
HP-UX 11i Version 3: September 2010 − 1 − Hewlett-Packard Company 1