MyWebUniversity.com Home Page
 



OpenSolaris man pages main menu


Mathematical Library Functions                    feupdateenv(3M)



NAME
     feupdateenv - update floating-point environment

SYNOPSIS
     c99 [ flag... ] file... -lm [ library... ]
     #include 

     int feupdateenv(const fenvt *envp);


DESCRIPTION
     The feupdateenv() function attempts to  save  the  currently
     raised  floating-point  exceptions in its automatic storage,
     attempts   to   install   the   floating-point   environment
     represented  by  the  object  pointed  to  by envp, and then
     attempts to raise the saved floating-point  exceptions.  The
     envp  argument  points  to  an  object  set  by  a  call  to
     fegetenv(3M) or feholdexcept(3M), or equals a floating-point
     environment macro.

RETURN VALUES
     The feupdateenv() function returns 0 if and only if all  the
     required actions were successfully carried out.

ERORS
     No errors are defined.

EXAMPLES
     The following  example  demonstrates  sample  code  to  hide
     spurious underflow floating-point exceptions:

     Example 1 Hide spurious underflow floating-point exceptions.

       #include 
       double f(double x)
       {
       #   pragma STDC FENVACES ON
           double result;
           fenvt saveenv;
           feholdexcept(&saveenv);
           / compute result
           if (/* test spurious underflow */)
           feclearexcept(FEUNDERFLOW);
           feupdateenv(&saveenv);
           return result;
       }


ATRIBUTES
     See attributes(5) for descriptions of the  following  attri-
     butes:




SunOS 5.11          Last change: 12 Jul 2006                    1






Mathematical Library Functions                    feupdateenv(3M)



     
           ATRIBUTE TYPE               ATRIBUTE VALUE       
    
     Interface Stability          Standard                    
    
     MT-Level                     MT-Safe                     
    


SEE ALSO
     fegetenv(3M),   feholdexcept(3M),   fenv.h(3HEAD),    attri-
     butes(5), standards(5)

NOTES
     In  a  multithreaded  program,  the  feupdateenv()  function
     affects  the floating point environment only for the calling
     thread.


     When the FEXCUSTOM handling mode is in effect for an excep-
     tion,  raising that exception using feupdateenv() causes the
     handling function to be invoked. The handling  function  can
     then  modify  the  exception flags to be set as described in
     fexsethandling(3M).  Any result value the handler supplies
     will be ignored.


     The feupdateenv() function automatically installs and  dein-
     stalls  SIGFPE  handlers and sets and clears the trap enable
     mode bits in the floating point status register  as  needed.
     If  a program uses these functions and attempts to install a
     SIGFPE handler or control the trap enable mode bits indepen-
     dently, the resulting behavior is not defined.


     As described in fexsethandling(3M), when a handling  func-
     tion  installed in FEXCUSTOM mode is invoked, all exception
     traps are disabled (and will not be reenabled  while  SIGFPE
     is blocked). Thus, attempting to change the environment from
     within a handler  by  calling  fesetenv(3M)  or  feupdateenv
     might not produce the expected results.














SunOS 5.11          Last change: 12 Jul 2006                    2



OpenSolaris man pages main menu

Contact us      |       About us      |       Term of use      |       Copyright © 2000-2010 MyWebUniversity.com ™