/*
    AUTOMATICALLY GENERATED BY tspec 2.10
    API SUBSET: iso99:fenv.h (VERSION 1.0)
*/

#ifndef __TDF_ISO99_FENV_H
#define __TDF_ISO99_FENV_H

#ifdef __cplusplus
extern "C" {
#endif

#pragma TenDRA declaration block api__iso99__fenv begin

#pragma token TYPE fenv_t # iso99.fenv.fenv_t
#pragma token TYPE fexcept_t # iso99.fenv.fexcept_t
#ifndef __NO_FP_EXCEPTIONS
#pragma token EXP const : int : FE_DIVBYZERO # iso99.fenv.FE_DIVBYZERO
#pragma token EXP const : int : FE_INEXACT # iso99.fenv.FE_INEXACT
#pragma token EXP const : int : FE_INVALID # iso99.fenv.FE_INVALID
#pragma token EXP const : int : FE_OVERFLOW # iso99.fenv.FE_OVERFLOW
#pragma token EXP const : int : FE_UNDERFLOW # iso99.fenv.FE_UNDERFLOW
#pragma token EXP const : int : FE_ALL_EXCEPT # iso99.fenv.FE_ALL_EXCEPT
#endif /* __NO_FP_EXCEPTIONS */
#ifndef __NO_FP_ROUND_DIRECTIONS
#pragma token EXP const : int : FE_DOWNWARD # iso99.fenv.FE_DOWNWARD
#pragma token EXP const : int : FE_TONEAREST # iso99.fenv.FE_TONEAREST
#pragma token EXP const : int : FE_TOWARDZERO # iso99.fenv.FE_TOWARDZERO
#pragma token EXP const : int : FE_UPWARD # iso99.fenv.FE_UPWARD
#endif /* __NO_FP_ROUND_DIRECTIONS */
#pragma token EXP rvalue : const fenv_t * : FE_DFL_ENV # iso99.fenv.FE_DFL_ENV
#pragma token FUNC int (int) : feclearexcept # iso99.fenv.feclearexcept
#pragma token FUNC int (fexcept_t *, int) : fegetexceptflag # iso99.fenv.fegetexceptflag
#pragma token FUNC int (int) : feraiseexcept # iso99.fenv.feraiseexcept
#pragma token FUNC int (const fexcept_t *, int) : fesetexceptflag # iso99.fenv.fesetexceptflag
#pragma token FUNC int (int) : fetestexcept # iso99.fenv.fetestexcept
#pragma token FUNC int (void) : fegetround # iso99.fenv.fegetround
#pragma token FUNC int (int) : fesetround # iso99.fenv.fesetround
#pragma token FUNC int (fenv_t *) : fegetenv # iso99.fenv.fegetenv
#pragma token FUNC int (fenv_t *) : feholdexcept # iso99.fenv.feholdexcept
#pragma token FUNC int (const fenv_t *) : fesetenv # iso99.fenv.fesetenv
#pragma token FUNC int (const fenv_t *) : feupdateenv # iso99.fenv.feupdateenv

#pragma interface fenv_t fexcept_t
#ifndef __NO_FP_EXCEPTIONS
#pragma interface FE_DIVBYZERO FE_INEXACT FE_INVALID FE_OVERFLOW
#pragma interface FE_UNDERFLOW FE_ALL_EXCEPT
#endif /* __NO_FP_EXCEPTIONS */
#ifndef __NO_FP_ROUND_DIRECTIONS
#pragma interface FE_DOWNWARD FE_TONEAREST FE_TOWARDZERO FE_UPWARD
#endif /* __NO_FP_ROUND_DIRECTIONS */
#pragma interface FE_DFL_ENV feclearexcept fegetexceptflag feraiseexcept
#pragma interface fesetexceptflag fetestexcept fegetround fesetround
#pragma interface fegetenv feholdexcept fesetenv feupdateenv

#pragma TenDRA declaration block end

#ifdef __cplusplus
}
#endif

#endif /* __TDF_ISO99_FENV_H */
