Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ fpgetround(3C) — Reliant UNIX 5.44c4

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

isnan(3C)

fpgetround(3C)                                               fpgetround(3C)

NAME
     fpgetround, fpsetround, fpgetmask, fpsetmask, fpgetsticky, fpsetsticky
     - IEEE floating-point environment control

SYNOPSIS
     #include <ieeefp.h>

     fprnd fpsetround(fprnd rnddir);

     fpexcept fpgetmask(void);

     fpexcept fpsetmask(fpexcept mask);

     fpexcept fpgetsticky(void);

     fpexcept fpsetsticky(fpexcept sticky);

DESCRIPTION
     There are five floating-point exceptions: divide-by-zero, overflow,
     underflow, imprecise result, and invalid operation. When a floating-
     point exception occurs, the corresponding sticky bit is set (1), and
     if the mask bit is enabled (1), the trap takes place. These routines
     let the user change the behavior on occurrence of any of these excep-
     tions, as well as change the rounding mode for floating-point opera-
     tions.

             FPXINV        /* invalid operation exception */
             FPXOFL        /* overflow exception */
             FPXUFL        /* underflow exception */
             FPXDZ         /* divide-by-zero exception */
             FPXIMP        /* imprecise (loss of precision) */
             FPRN           /* round to nearest representative number */
             FPRP           /* round to plus infinity */
             FPRM           /* round to minus infinity */
             FPRZ           /* round to zero (truncate) */

     fpgetround() returns the current rounding mode.

     fpsetround() sets the rounding mode and returns the previous rounding
     mode.

     fpgetmask() returns the current exception masks.

     fpsetmask() sets the exception masks and returns the previous setting.

     fpgetsticky() returns the current exception sticky flags.

     fpsetsticky() sets (clears) the exception sticky flags and returns the
     previous setting.

     The default environment is set to round to nearest (FPRN), and all
     traps are disabled.



Page 1                       Reliant UNIX 5.44                Printed 11/98

fpgetround(3C)                                               fpgetround(3C)

     Individual bits may be examined using the constants defined in
     ieeefp.h.

NOTES
     fpsetsticky() modifies all sticky flags. fpsetmask() changes all mask
     bits. fpsetmask() clears the sticky bit corresponding to any exception
     being enabled.

     C requires truncation ("round to zero") for floating point to integral
     conversions. The current rounding mode has no effect on these conver-
     sions.

     To recover from a trap caused by a floating point exception and then
     proceed, one must clear the sticky bit. If the sticky bit is not
     cleared before the next trap occurs, a wrong exception type may be
     signaled.

SEE ALSO
     isnan(3C).



































Page 2                       Reliant UNIX 5.44                Printed 11/98

Typewritten Software • bear@typewritten.org • Edmonds, WA 98026