HPlogo HP-UX Reference Volume 4 of 5 > f

fesetflushtozero(3M)

» 

Technical documentation

Complete book in PDF

 » Table of Contents

 » Index

NAME

fesetflushtozero() — set floating-point underflow mode

SYNOPSIS

#include <fenv.h>

void fesetflushtozero(int);

DESCRIPTION

The fesetflushtozero() function sets the current underflow mode. If the argument is 1, the underflow mode is set to flush-to-zero mode. If the argument is zero, the underflow mode is set to IEEE-754-compliant (gradual) underflow mode. For arguments other than 1 or zero, the effect is undefined.

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 systems. On HP 9000 systems, most underflow cases are supported by trapping into the kernel, where the IEEE-mandated conversion of the result into a denormalized value or zero is accomplished by software emulation. Flush-to-zero mode causes the hardware to substitute a zero for the result of an operation, with no fault occurring. This may be a significant performance optimization for applications that underflow frequently. Flush-to-zero mode also causes denormalized floating-point operands to be treated as if they were true zero operands.

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

RETURN VALUE

None.

ERRORS

No errors are defined.

EXAMPLE

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

AUTHOR

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

© Hewlett-Packard Development Company, L.P.