Viewing file: fenv.h (4.56 KB) -rw-r--r-- Select action/file-type: (+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
/* 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 */
|