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

#ifndef __TDF_ISO99_MATH_H
#define __TDF_ISO99_MATH_H

#ifdef __cplusplus
extern "C" {
#endif

#pragma TenDRA declaration block api__iso99__math begin

#pragma token FLOAT float_t # iso99.math.float_t
#pragma token FLOAT double_t # iso99.math.double_t
#pragma token EXP const : double : HUGE_VAL # iso99.math.HUGE_VAL
#pragma token EXP const : float : HUGE_VALF # iso99.math.HUGE_VALF
#pragma token EXP const : long double : HUGE_VALL # iso99.math.HUGE_VALL
#pragma token EXP const : float : INFINITY # iso99.math.INFINITY
#ifndef __NO_NAN
#pragma token EXP const : float : NAN # iso99.math.NAN
#endif /* __NO_NAN */
#pragma token EXP const : int : FP_INFINITE # iso99.math.FP_INFINITE
#pragma token EXP const : int : FP_NAN # iso99.math.FP_NAN
#pragma token EXP const : int : FP_NORMAL # iso99.math.FP_NORMAL
#pragma token EXP const : int : FP_SUBNORMAL # iso99.math.FP_SUBNORMAL
#pragma token EXP const : int : FP_ZERO # iso99.math.FP_ZERO
#pragma token EXP const : int : FP_ILOGB0 # iso99.math.FP_ILOGB0
#pragma token EXP const : int : FP_ILOGBNAN # iso99.math.FP_ILOGBNAN
#define MATH_ERRNO 1
#define MATH_ERREXCEPT 2
#pragma token EXP rvalue : int : math_errhandling # iso99.math.math_errhandling
#pragma token FUNC double (double) : acos # iso99.math.acos
#pragma token FUNC float (float) : acosf # iso99.math.acosf
#pragma token FUNC long double (long double) : acosl # iso99.math.acosl
#pragma token FUNC double (double) : asin # iso99.math.asin
#pragma token FUNC float (float) : asinf # iso99.math.asinf
#pragma token FUNC long double (long double) : asinl # iso99.math.asinl
#pragma token FUNC double (double) : atan # iso99.math.atan
#pragma token FUNC float (float) : atanf # iso99.math.atanf
#pragma token FUNC long double (long double) : atanl # iso99.math.atanl
#pragma token FUNC double (double, double) : atan2 # iso99.math.atan2
#pragma token FUNC float (float, float) : atan2f # iso99.math.atan2f
#pragma token FUNC long double (long double, long double) : atan2l # iso99.math.atan2l
#pragma token FUNC double (double) : cos # iso99.math.cos
#pragma token FUNC float (float) : cosf # iso99.math.cosf
#pragma token FUNC long double (long double) : cosl # iso99.math.cosl
#pragma token FUNC double (double) : sin # iso99.math.sin
#pragma token FUNC float (float) : sinf # iso99.math.sinf
#pragma token FUNC long double (long double) : sinl # iso99.math.sinl
#pragma token FUNC double (double) : tan # iso99.math.tan
#pragma token FUNC float (float) : tanf # iso99.math.tanf
#pragma token FUNC long double (long double) : tanl # iso99.math.tanl
#pragma token FUNC double (double) : acosh # iso99.math.acosh
#pragma token FUNC float (float) : acoshf # iso99.math.acoshf
#pragma token FUNC long double (long double) : acoshl # iso99.math.acoshl
#pragma token FUNC double (double) : asinh # iso99.math.asinh
#pragma token FUNC float (float) : asinhf # iso99.math.asinhf
#pragma token FUNC long double (long double) : asinhl # iso99.math.asinhl
#pragma token FUNC double (double) : atanh # iso99.math.atanh
#pragma token FUNC float (float) : atanhf # iso99.math.atanhf
#pragma token FUNC long double (long double) : atanhl # iso99.math.atanhl
#pragma token FUNC double (double) : cosh # iso99.math.cosh
#pragma token FUNC float (float) : coshf # iso99.math.coshf
#pragma token FUNC long double (long double) : coshl # iso99.math.coshl
#pragma token FUNC double (double) : sinh # iso99.math.sinh
#pragma token FUNC float (float) : sinhf # iso99.math.sinhf
#pragma token FUNC long double (long double) : sinhl # iso99.math.sinhl
#pragma token FUNC double (double) : tanh # iso99.math.tanh
#pragma token FUNC float (float) : tanhf # iso99.math.tanhf
#pragma token FUNC long double (long double) : tanhl # iso99.math.tanhl
#pragma token FUNC double (double) : exp # iso99.math.exp
#pragma token FUNC float (float) : expf # iso99.math.expf
#pragma token FUNC long double (long double) : expl # iso99.math.expl
#pragma token FUNC double (double) : exp2 # iso99.math.exp2
#pragma token FUNC float (float) : exp2f # iso99.math.exp2f
#pragma token FUNC long double (long double) : exp2l # iso99.math.exp2l
#pragma token FUNC double (double) : expm1 # iso99.math.expm1
#pragma token FUNC float (float) : expm1f # iso99.math.expm1f
#pragma token FUNC long double (long double) : expm1l # iso99.math.expm1l
#pragma token FUNC double (double, int *) : frexp # iso99.math.frexp
#pragma token FUNC float (float, int *) : frexpf # iso99.math.frexpf
#pragma token FUNC long double (long double, int *) : frexp1 # iso99.math.frexp1
#pragma token FUNC int (double) : ilogb # iso99.math.ilogb
#pragma token FUNC int (float) : ilogbf # iso99.math.ilogbf
#pragma token FUNC int (long double) : ilogbl # iso99.math.ilogbl
#pragma token FUNC double (double, int) : ldexp # iso99.math.ldexp
#pragma token FUNC float (float, int) : ldexpf # iso99.math.ldexpf
#pragma token FUNC long double (long double, int) : ldexpl # iso99.math.ldexpl
#pragma token FUNC double (double) : log # iso99.math.log
#pragma token FUNC float (float) : logf # iso99.math.logf
#pragma token FUNC long double (long double) : logl # iso99.math.logl
#pragma token FUNC double (double) : log10 # iso99.math.log10
#pragma token FUNC float (float) : log10f # iso99.math.log10f
#pragma token FUNC long double (long double) : log10l # iso99.math.log10l
#pragma token FUNC double (double) : log1p # iso99.math.log1p
#pragma token FUNC float (float) : log1pf # iso99.math.log1pf
#pragma token FUNC long double (long double) : log1pl # iso99.math.log1pl
#pragma token FUNC double (double) : log2 # iso99.math.log2
#pragma token FUNC float (float) : log2f # iso99.math.log2f
#pragma token FUNC long double (long double) : log2l # iso99.math.log2l
#pragma token FUNC double (double) : logb # iso99.math.logb
#pragma token FUNC float (float) : logbf # iso99.math.logbf
#pragma token FUNC long double (long double) : logbl # iso99.math.logbl
#pragma token FUNC double (double, double *) : modf # iso99.math.modf
#pragma token FUNC float (float, float *) : modff # iso99.math.modff
#pragma token FUNC long double (long double, long double *) : modfl # iso99.math.modfl
#pragma token FUNC double (double, int) : scalbn # iso99.math.scalbn
#pragma token FUNC float (float, int) : scalbnf # iso99.math.scalbnf
#pragma token FUNC long double (long double, int) : scalbnl # iso99.math.scalbnl
#pragma token FUNC double (double, long) : scalbln # iso99.math.scalbln
#pragma token FUNC float (float, long) : scalblnf # iso99.math.scalblnf
#pragma token FUNC long double (long double, long) : scalblnl # iso99.math.scalblnl
#pragma token FUNC double (double) : cbrt # iso99.math.cbrt
#pragma token FUNC float (float) : cbrtf # iso99.math.cbrtf
#pragma token FUNC long double (long double) : cbrtl # iso99.math.cbrtl
#pragma token FUNC double (double) : fabs # iso99.math.fabs
#pragma token FUNC float (float) : fabsf # iso99.math.fabsf
#pragma token FUNC long double (long double) : fabsl # iso99.math.fabsl
#pragma token FUNC double (double, double) : hypot # iso99.math.hypot
#pragma token FUNC float (float, float) : hypotf # iso99.math.hypotf
#pragma token FUNC long double (long double, long double) : hypotl # iso99.math.hypotl
#pragma token FUNC double (double, double) : pow # iso99.math.pow
#pragma token FUNC float (float, float) : powf # iso99.math.powf
#pragma token FUNC long double (long double, long double) : powl # iso99.math.powl
#pragma token FUNC double (double) : sqrt # iso99.math.sqrt
#pragma token FUNC float (float) : sqrtf # iso99.math.sqrtf
#pragma token FUNC long double (long double) : sqrtl # iso99.math.sqrtl
#pragma token FUNC double (double) : erf # iso99.math.erf
#pragma token FUNC float (float) : erff # iso99.math.erff
#pragma token FUNC long double (long double) : erfl # iso99.math.erfl
#pragma token FUNC double (double) : erfc # iso99.math.erfc
#pragma token FUNC float (float) : erfcf # iso99.math.erfcf
#pragma token FUNC long double (long double) : erfcl # iso99.math.erfcl
#pragma token FUNC double (double) : lgamma # iso99.math.lgamma
#pragma token FUNC float (float) : lgammaf # iso99.math.lgammaf
#pragma token FUNC long double (long double) : lgammal # iso99.math.lgammal
#pragma token FUNC double (double) : tgamma # iso99.math.tgamma
#pragma token FUNC float (float) : tgammaf # iso99.math.tgammaf
#pragma token FUNC long double (long double) : tgammal # iso99.math.tgammal
#pragma token FUNC double (double) : ceil # iso99.math.ceil
#pragma token FUNC float (float) : ceilf # iso99.math.ceilf
#pragma token FUNC long double (long double) : ceill # iso99.math.ceill
#pragma token FUNC double (double) : floor # iso99.math.floor
#pragma token FUNC float (float) : floorf # iso99.math.floorf
#pragma token FUNC long double (long double) : floorl # iso99.math.floorl
#pragma token FUNC double (double) : nearbyint # iso99.math.nearbyint
#pragma token FUNC float (float) : nearbyintf # iso99.math.nearbyintf
#pragma token FUNC long double (long double) : nearbyintl # iso99.math.nearbyintl
#pragma token FUNC double (double) : rint # iso99.math.rint
#pragma token FUNC float (float) : rintf # iso99.math.rintf
#pragma token FUNC long double (long double) : rintl # iso99.math.rintl
#pragma token FUNC long (double) : lrint # iso99.math.lrint
#pragma token FUNC long (float) : lrintf # iso99.math.lrintf
#pragma token FUNC long (long double) : lrintl # iso99.math.lrintl
#pragma token FUNC long long (double) : llrint # iso99.math.llrint
#pragma token FUNC long long (float) : llrintf # iso99.math.llrintf
#pragma token FUNC long long (long double) : llrintl # iso99.math.llrintl
#pragma token FUNC double (double) : round # iso99.math.round
#pragma token FUNC float (float) : roundf # iso99.math.roundf
#pragma token FUNC long double (long double) : roundl # iso99.math.roundl
#pragma token FUNC long (double) : lround # iso99.math.lround
#pragma token FUNC long (float) : lroundf # iso99.math.lroundf
#pragma token FUNC long (long double) : lroundl # iso99.math.lroundl
#pragma token FUNC long long (double) : llround # iso99.math.llround
#pragma token FUNC long long (float) : llroundf # iso99.math.llroundf
#pragma token FUNC long long (long double) : llroundl # iso99.math.llroundl
#pragma token FUNC double (double) : trunc # iso99.math.trunc
#pragma token FUNC float (float) : truncf # iso99.math.truncf
#pragma token FUNC long double (long double) : truncl # iso99.math.truncl
#pragma token FUNC double (double, double) : fmod # iso99.math.fmod
#pragma token FUNC float (float, float) : fmodf # iso99.math.fmodf
#pragma token FUNC long double (long double, long double) : fmodl # iso99.math.fmodl
#pragma token FUNC double (double, double) : remainder # iso99.math.remainder
#pragma token FUNC float (float, float) : remainderf # iso99.math.remainderf
#pragma token FUNC long double (long double, long double) : remainderl # iso99.math.remainderl
#pragma token FUNC double (double, double, int *) : remquo # iso99.math.remquo
#pragma token FUNC float (float, float, int *) : remquof # iso99.math.remquof
#pragma token FUNC long double (long double, long double, int *) : remquol # iso99.math.remquol
#pragma token FUNC double (double, double) : copysign # iso99.math.copysign
#pragma token FUNC float (float, float) : copysignf # iso99.math.copysignf
#pragma token FUNC long double (long double, long double) : copysignl # iso99.math.copysignl
#pragma token FUNC double (const char *) : nan # iso99.math.nan
#pragma token FUNC float (const char *) : nanf # iso99.math.nanf
#pragma token FUNC long double (const char *) : nanl # iso99.math.nanl
#pragma token FUNC double (double, double) : nextafter # iso99.math.nextafter
#pragma token FUNC float (float, float) : nextafterf # iso99.math.nextafterf
#pragma token FUNC long double (long double, long double) : nextafterl # iso99.math.nextafterl
#pragma token FUNC double (double, long double) : nexttoward # iso99.math.nexttoward
#pragma token FUNC float (float, long double) : nexttowardf # iso99.math.nexttowardf
#pragma token FUNC long double (long double, long double) : nexttowardl # iso99.math.nexttowardl
#pragma token FUNC double (double, double) : fdim # iso99.math.fdim
#pragma token FUNC float (float, float) : fdimf # iso99.math.fdimf
#pragma token FUNC long double (long double, long double) : fdiml # iso99.math.fdiml
#pragma token FUNC double (double, double) : fmax # iso99.math.fmax
#pragma token FUNC float (float, float) : fmaxf # iso99.math.fmaxf
#pragma token FUNC long double (long double, long double) : fmaxl # iso99.math.fmaxl
#pragma token FUNC double (double, double) : fmin # iso99.math.fmin
#pragma token FUNC float (float, float) : fminf # iso99.math.fminf
#pragma token FUNC long double (long double, long double) : fminl # iso99.math.fminl
#pragma token FUNC double (double, double, double) : fma # iso99.math.fma
#pragma token FUNC float (float, float, float) : fmaf # iso99.math.fmaf
#pragma token FUNC long double (long double, long double, long double) : fmal # iso99.math.fmal

#pragma interface float_t double_t HUGE_VAL HUGE_VALF HUGE_VALL INFINITY
#ifndef __NO_NAN
#pragma interface NAN
#endif /* __NO_NAN */
#pragma interface FP_INFINITE FP_NAN FP_NORMAL FP_SUBNORMAL FP_ZERO
#pragma interface FP_ILOGB0 FP_ILOGBNAN math_errhandling acos acosf acosl
#pragma interface asin asinf asinl atan atanf atanl atan2 atan2f atan2l cos
#pragma interface cosf cosl sin sinf sinl tan tanf tanl acosh acoshf acoshl
#pragma interface asinh asinhf asinhl atanh atanhf atanhl cosh coshf coshl
#pragma interface sinh sinhf sinhl tanh tanhf tanhl exp expf expl exp2 exp2f
#pragma interface exp2l expm1 expm1f expm1l frexp frexpf frexp1 ilogb ilogbf
#pragma interface ilogbl ldexp ldexpf ldexpl log logf logl log10 log10f
#pragma interface log10l log1p log1pf log1pl log2 log2f log2l logb logbf
#pragma interface logbl modf modff modfl scalbn scalbnf scalbnl scalbln
#pragma interface scalblnf scalblnl cbrt cbrtf cbrtl fabs fabsf fabsl hypot
#pragma interface hypotf hypotl pow powf powl sqrt sqrtf sqrtl erf erff erfl
#pragma interface erfc erfcf erfcl lgamma lgammaf lgammal tgamma tgammaf
#pragma interface tgammal ceil ceilf ceill floor floorf floorl nearbyint
#pragma interface nearbyintf nearbyintl rint rintf rintl lrint lrintf lrintl
#pragma interface llrint llrintf llrintl round roundf roundl lround lroundf
#pragma interface lroundl llround llroundf llroundl trunc truncf truncl fmod
#pragma interface fmodf fmodl remainder remainderf remainderl remquo remquof
#pragma interface remquol copysign copysignf copysignl nan nanf nanl
#pragma interface nextafter nextafterf nextafterl nexttoward nexttowardf
#pragma interface nexttowardl fdim fdimf fdiml fmax fmaxf fmaxl fmin fminf
#pragma interface fminl fma fmaf fmal

#pragma TenDRA declaration block end

#ifdef __cplusplus
}
#endif

#endif /* __TDF_ISO99_MATH_H */
