123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113 |
- .\" Copyright (c) 2004 David Schultz <[email protected]>
- .\" All rights reserved.
- .\"
- .\" Redistribution and use in source and binary forms, with or without
- .\" modification, are permitted provided that the following conditions
- .\" are met:
- .\" 1. Redistributions of source code must retain the above copyright
- .\" notice, this list of conditions and the following disclaimer.
- .\" 2. Redistributions in binary form must reproduce the above copyright
- .\" notice, this list of conditions and the following disclaimer in the
- .\" documentation and/or other materials provided with the distribution.
- .\"
- .\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
- .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- .\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
- .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- .\" SUCH DAMAGE.
- .\"
- .\" $FreeBSD: src/lib/msun/man/fegetenv.3,v 1.1 2004/06/06 10:06:26 das Exp $
- .\"
- .Dd May 8, 2004
- .Dt FEGETENV 3
- .Os
- .Sh NAME
- .Nm fegetenv ,
- .Nm feholdexcept ,
- .Nm fesetenv ,
- .Nm feupdateenv
- .Nd floating-point environment save and restore
- .Sh LIBRARY
- .Lb libm
- .Sh SYNOPSIS
- .In fenv.h
- .Fd "#pragma STDC FENV_ACCESS ON"
- .Ft int
- .Fn fegetenv "fenv_t *envp"
- .Ft int
- .Fn feholdexcept "fenv_t *envp"
- .Ft int
- .Fn fesetenv "const fenv_t *envp"
- .Ft int
- .Fn feupdateenv "const fenv_t *envp"
- .Sh DESCRIPTION
- The floating-point environment includes exception flags and masks, the
- current rounding mode, and other architecture-specific settings.
- However, it does not include the floating-point register file.
- .Pp
- The
- .Fn fegetenv
- function stores the current floating-point environment in the object
- pointed to by
- .Fa envp ,
- whereas
- .Fn feholdexcept
- saves the current environment, then clears all exception flags
- and masks all floating-point exceptions.
- .Pp
- The
- .Fn fesetenv
- function restores a previously saved environment.
- The
- .Fn feupdateenv
- function restores a saved environment as well, but it also
- raises any exceptions that were set in the environment it
- replaces.
- .Pp
- The
- .Fn feholdexcept
- function is often used with
- .Fn feupdateenv
- or
- .Fn fesetenv
- to suppress spurious exceptions that occur as a result of
- intermediate computations.
- An example in
- .Xr fenv 3
- demonstrates how to do this.
- .Sh RETURN VALUES
- The
- .Fn fegetenv ,
- .Fn feholdexcept ,
- .Fn fesetenv ,
- and
- .Fn feupdateenv
- functions return 0 if they succeed, and non-zero otherwise.
- .Sh SEE ALSO
- .Xr feclearexcept 3 ,
- .Xr fenv 3 ,
- .Xr feraiseexcept 3 ,
- .Xr fesetenv 3 ,
- .Xr fetestexcept 3 ,
- .Xr fpgetmask 3 ,
- .Xr fpgetprec 3 ,
- .Xr fpsetmask 3 ,
- .Xr fpsetprec 3
- .Sh STANDARDS
- The
- .Fn fegetenv ,
- .Fn feholdexcept ,
- .Fn fesetenv ,
- and
- .Fn feupdateenv
- functions conform to
- .St -isoC-99 .
- .Sh HISTORY
- These routines first appeared in
- .Fx 5.3 .
|