Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
FEGETENV(3)		    Library Functions Manual		   FEGETENV(3)

NAME
       fegetenv,  feholdexcept,	 fesetenv, feupdateenv -- floating-point envi-
       ronment save and	restore

LIBRARY
       Math Library (libm, -lm)

SYNOPSIS
       #include	<fenv.h>
       #pragma STDC FENV_ACCESS	ON

       int
       fegetenv(fenv_t *envp);

       int
       feholdexcept(fenv_t *envp);

       int
       fesetenv(const fenv_t *envp);

       int
       feupdateenv(const fenv_t	*envp);

DESCRIPTION
       The floating-point environment includes exception flags and masks,  the
       current	rounding mode, and other architecture-specific settings.  How-
       ever, it	does not include the floating-point register file.

       The fegetenv() function stores the current  floating-point  environment
       in the object pointed to	by envp, whereas feholdexcept()	saves the cur-
       rent  environment, then clears all exception flags and masks all	float-
       ing-point exceptions.

       The fesetenv() function restores	a previously saved  environment.   The
       feupdateenv()  function	restores  a  saved environment as well,	but it
       also raises any exceptions that were set	 in  the  environment  it  re-
       places.

       The  feholdexcept()  function  is  often	 used  with  feupdateenv()  or
       fesetenv() to suppress spurious exceptions that occur as	 a  result  of
       intermediate  computations.   An	example	in fenv(3) demonstrates	how to
       do this.

RETURN VALUES
       The fegetenv(), feholdexcept(), fesetenv(), and feupdateenv() functions
       return 0	if they	succeed, and non-zero otherwise.

SEE ALSO
       feclearexcept(3),     fenv(3),	   feraiseexcept(3),	  fesetenv(3),
       fetestexcept(3),	fpgetmask(3), fpgetprec(3), fpsetmask(3), fpsetprec(3)

STANDARDS
       The fegetenv(), feholdexcept(), fesetenv(), and feupdateenv() functions
       conform to ISO/IEC 9899:1999 ("ISO C99").

HISTORY
       These routines first appeared in	FreeBSD	5.3.

FreeBSD	15.0			  May 8, 2004			   FEGETENV(3)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=feholdexcept&sektion=3&manpath=FreeBSD+15.0-RELEASE+and+Ports.quarterly>

home | help