| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136 | /* Copyright (C) 1997, 1999, 2000 Free Software Foundation, Inc.   This file is part of the GNU C Library.   The GNU C Library is free software; you can redistribute it and/or   modify it under the terms of the GNU Lesser General Public   License as published by the Free Software Foundation; either   version 2.1 of the License, or (at your option) any later version.   The GNU C Library is distributed in the hope that it will be useful,   but WITHOUT ANY WARRANTY; without even the implied warranty of   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU   Lesser General Public License for more details.   You should have received a copy of the GNU Lesser General Public   License along with the GNU C Library; if not, write to the Free   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA   02111-1307 USA.  *//* * ISO C99 7.6: Floating-point environment	<fenv.h> */#ifndef _FENV_H#define _FENV_H	1#include <features.h>/* Get the architecture dependend definitions.  The following definitions   are expected to be done:   fenv_t	type for object representing an entire floating-point		environment   FE_DFL_ENV	macro of type pointer to fenv_t to be used as the argument		to functions taking an argument of type fenv_t; in this		case the default environment will be used   fexcept_t	type for object representing the floating-point exception		flags including status associated with the flags   The following macros are defined iff the implementation supports this   kind of exception.   FE_INEXACT		inexact result   FE_DIVBYZERO		division by zero   FE_UNDERFLOW		result not representable due to underflow   FE_OVERFLOW		result not representable due to overflow   FE_INVALID		invalid operation   FE_ALL_EXCEPT	bitwise OR of all supported exceptions   The next macros are defined iff the appropriate rounding mode is   supported by the implementation.   FE_TONEAREST		round to nearest   FE_UPWARD		round toward +Inf   FE_DOWNWARD		round toward -Inf   FE_TOWARDZERO	round toward 0*/#include <bits/fenv.h>__BEGIN_DECLS/* Floating-point exception handling.  *//* Clear the supported exceptions represented by EXCEPTS.  */extern int feclearexcept (int __excepts) __THROW;/* Store implementation-defined representation of the exception flags   indicated by EXCEPTS in the object pointed to by FLAGP.  */extern int fegetexceptflag (fexcept_t *__flagp, int __excepts) __THROW;/* Raise the supported exceptions represented by EXCEPTS.  */extern int feraiseexcept (int __excepts) __THROW;/* Set complete status for exceptions indicated by EXCEPTS according to   the representation in the object pointed to by FLAGP.  */extern int fesetexceptflag (__const fexcept_t *__flagp, int __excepts) __THROW;/* Determine which of subset of the exceptions specified by EXCEPTS are   currently set.  */extern int fetestexcept (int __excepts) __THROW;/* Rounding control.  *//* Get current rounding direction.  */extern int fegetround (void) __THROW;/* Establish the rounding direction represented by ROUND.  */extern int fesetround (int __rounding_direction) __THROW;/* Floating-point environment.  *//* Store the current floating-point environment in the object pointed   to by ENVP.  */extern int fegetenv (fenv_t *__envp) __THROW;/* Save the current environment in the object pointed to by ENVP, clear   exception flags and install a non-stop mode (if available) for all   exceptions.  */extern int feholdexcept (fenv_t *__envp) __THROW;/* Establish the floating-point environment represented by the object   pointed to by ENVP.  */extern int fesetenv (__const fenv_t *__envp) __THROW;/* Save current exceptions in temporary storage, install environment   represented by object pointed to by ENVP and raise exceptions   according to saved exceptions.  */extern int feupdateenv (__const fenv_t *__envp) __THROW;/* Include optimization.  */#ifdef __OPTIMIZE__# include <bits/fenvinline.h>#endif#ifdef __USE_GNU/* Enable individual exceptions.  Will not enable more exceptions than   EXCEPTS specifies.  Returns the previous enabled exceptions if all   exceptions are successfully set, otherwise returns -1.  */extern int feenableexcept (int __excepts) __THROW;/* Disable individual exceptions.  Will not disable more exceptions than   EXCEPTS specifies.  Returns the previous enabled exceptions if all   exceptions are successfully disabled, otherwise returns -1.  */extern int fedisableexcept (int __excepts) __THROW;/* Return enabled exceptions.  */extern int fegetexcept (void) __THROW;#endif__END_DECLS#endif /* fenv.h */
 |