Jump to content United States-English
HP.com Home Products and Services Support and Drivers Solutions How to Buy
» Contact HP
More options
HP.com home
HP-UX Reference > F


HP-UX 11i Version 3: February 2007

Technical documentation

» Feedback
Content starts here

 » Table of Contents

 » Index


fegetflushtozero() — get floating-point underflow mode


#include <fenv.h>

int fegetflushtozero(void);


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 substitution 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.


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:


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 optimizations 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.


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.


No errors are defined.


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);


fegetflushtozero() was developed by HP and is not required by any current standard.

Printable version
Privacy statement Using this site means you accept its terms Feedback to webmaster
© 1983-2007 Hewlett-Packard Development Company, L.P.