HPlogo HP-UX Reference > F

fesetround(3M)

HP-UX 11i Version 2: December 2007 Update
» 

Technical documentation

 » Table of Contents

 » Index

NAME

fesetround() — set floating-point rounding direction mode

SYNOPSIS

#include <fenv.h>

int fesetround(int round);

DESCRIPTION

The fesetround() function establishes the rounding direction represented by its argument round. The round argument must equal one of the macros: FE_TONEAREST, FE_UPWARD, FE_DOWNWARD, and FE_TOWARDZERO. If the argument does not match a rounding direction macro, the rounding direction is not changed.

The default rounding direction mode is round to nearest (FE_TONEAREST).

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 Itanium(R)-based systems, 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 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.

RETURN VALUE

The fesetround() function returns a zero value if and only if the argument is equal to a rounding direction macro.

ERRORS

No errors are defined.

EXAMPLES

Save, set, and restore the rounding direction.

#include <fenv.h> /*...*/ { int save_round; save_round = fegetround(); fesetround(FE_UPWARD); /*...*/ fesetround(save_round); /*...*/ }

STANDARDS CONFORMANCE

fesetround() : ISO/IEC C99 (including Annex F, "IEC 60559 floating-point arithmetic")