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 */ 
  |