macro-constant HUGE_VAL {double}

#if !defined ISO && !defined POSIX
# if !defined XPG3 && !defined XPG4 && !defined UNIX98
macro fpclassify
macro isfinite
macro isinf
macro isnan
macro isnormal
macro signbit
macro isgreater
macro isgreaterequal
macro isless
macro islessequal
macro islessgreater
macro isunordered
type float_t
type double_t
# endif
# if defined XPG3 || defined XPG4 || defined UNIX98
function int isnan (double)
# endif

# if !defined ISO99 && !defined ISO11 && !defined POSIX2008
constant M_E
constant M_LOG2E
constant M_LOG10E
constant M_LN2
constant M_LN10
constant M_PI
constant M_PI_2
constant M_PI_4
constant M_1_PI
constant M_2_PI
constant M_2_SQRTPI
constant M_SQRT2
constant M_SQRT1_2

constant MAXFLOAT
# endif
# if !defined XPG3 && !defined XPG4 && !defined UNIX98
macro-constant HUGE_VALF {float}
macro-constant HUGE_VALL {long double}
macro-constant INFINITY {float}
macro-constant NAN {float}

macro-int-constant FP_INFINITE
macro-int-constant FP_NAN
macro-int-constant FP_NORMAL
macro-int-constant FP_SUBNORMAL
macro-int-constant FP_ZERO

optional-macro-int-constant FP_FAST_FMA {int} == 1
optional-macro-int-constant FP_FAST_FMAF {int} == 1
optional-macro-int-constant FP_FAST_FMAL {int} == 1

macro-int-constant FP_ILOGB0
macro-int-constant FP_ILOGBNAN

macro-int-constant MATH_ERRNO {int} == 1
macro-int-constant MATH_ERREXCEPT {int} == 2

macro math_errhandling {int}
# endif
#endif

function double acos (double)
function double asin (double)
function double atan (double)
function double atan2 (double, double)
function double ceil (double)
#if !defined ISO && !defined POSIX && !defined XPG3 && !defined XPG4 && !defined UNIX98
function double copysign (double, double)
#endif
function double cos (double)
function double cosh (double)
function double exp (double)
#if !defined ISO && !defined POSIX && !defined XPG3 && !defined XPG4 && !defined UNIX98
function double exp2 (double)
#endif
function double fabs (double)
function double floor (double)
function double fmod (double, double)
function double frexp (double, int*)
function double ldexp (double, int)
function double log (double)
function double log10 (double)
#if !defined ISO && !defined POSIX && !defined XPG3 && !defined XPG4 && !defined UNIX98
function double log2 (double)
#endif
function double modf (double, double*)
function double pow (double, double)
function double sin (double)
function double sinh (double)
function double sqrt (double)
function double tan (double)
function double tanh (double)
#if !defined ISO && !defined POSIX
function double erf (double)
function double erfc (double)
#endif
#if defined XPG3 || defined XPG4 || defined UNIX98
function double gamma (double)
#endif
#if !defined ISO && !defined POSIX
function double hypot (double, double)
# if !defined ISO99 && !defined ISO11 && !defined POSIX && !defined POSIX2008
function double j0 (double)
function double j1 (double)
function double jn (int, double)
# endif
function double lgamma (double)
# if !defined XPG3 && !defined XPG4 && !defined UNIX98
function double tgamma (double)
# endif
# if !defined ISO99 && !defined ISO11 && !defined POSIX && !defined POSIX2008
function double y0 (double)
function double y1 (double)
function double yn (int, double)
# endif
# if !defined XPG3
function double acosh (double)
function double asinh (double)
function double atanh (double)
function double cbrt (double)
function double expm1 (double)
function int ilogb (double)
function double log1p (double)
function double logb (double)
function double nextafter (double, double)
#  if !defined XPG4 && !defined UNIX98
function double nexttoward (double, long double)
function double nearbyint (double)
#  endif
function double remainder (double, double)
function double rint (double)
#  if !defined XPG4 && !defined UNIX98
function double round (double)
function double trunc (double)
function long lrint (double)
function {long long} llrint (double)
function long lround (double)
function {long long} llround (double)
function double remquo (double, double, int*)
#  endif
#  if defined XPG4 || defined UNIX98 || defined XOPEN2K
function double scalb (double, double)
#  endif
#  if !defined XPG4 && !defined UNIX98
function double scalbn (double, int)
function double scalbln (double, long)
function double fdim (double, double)
function double fmax (double, double)
function double fmin (double, double)
function double fma (double, double, double)
function double nan (const char*)
#  endif
# endif

# if !defined ISO99 && !defined ISO11 && !defined POSIX && !defined POSIX2008
// variable signgam
allow signgam
# endif
#endif

#if !defined ISO && !defined POSIX && !defined XPG3 && !defined XPG4 && !defined UNIX98
function float acosf (float)
function float asinf (float)
function float atanf (float)
function float atan2f (float, float)
function float ceilf (float)
function float copysignf (float, float)
function float cosf (float)
function float coshf (float)
function float expf (float)
function float exp2f (float)
function float fabsf (float)
function float floorf (float)
function float fmodf (float, float)
function float frexpf (float, int*)
function float ldexpf (float, int)
function float logf (float)
function float log10f (float)
function float log2f (float)
function float modff (float, float*)
function float powf (float, float)
function float sinf (float)
function float sinhf (float)
function float sqrtf (float)
function float tanf (float)
function float tanhf (float)
function float erff (float)
function float erfcf (float)
function float hypotf (float, float)
#if !defined ISO99 && !defined ISO11 && !defined POSIX && !defined POSIX2008
function float j0f (float)
function float j1f (float)
function float jnf (int, float)
#endif
function float lgammaf (float)
function float tgammaf (float)
#if !defined ISO99 && !defined ISO11 && !defined POSIX && !defined POSIX2008
function float y0f (float)
function float y1f (float)
function float ynf (int, float)
#endif
function float acoshf (float)
function float asinhf (float)
function float atanhf (float)
function float cbrtf (float)
function float expm1f (float)
function int ilogbf (float)
function float log1pf (float)
function float logbf (float)
function float nextafterf (float, float)
function float nexttowardf (float, long double)
function float nearbyintf (float)
function float remainderf (float, float)
function float rintf (float)
function float roundf (float)
function float truncf (float)
function long lrintf (float)
function {long long} llrintf (float)
function long lroundf (float)
function {long long} llroundf (float)
function float remquof (float, float, int*)
function float scalbnf (float, int)
function float scalblnf (float, long)
function float fdimf (float, float)
function float fmaxf (float, float)
function float fminf (float, float)
function float fmaf (float, float, float)
function float nanf (const char*)

function {long double} acosl (long double)
function {long double} asinl (long double)
function {long double} atanl (long double)
function {long double} atan2l (long double, long double)
function {long double} ceill (long double)
function {long double} copysignl (long double, long double)
function {long double} cosl (long double)
function {long double} coshl (long double)
function {long double} expl (long double)
function {long double} exp2l (long double)
function {long double} fabsl (long double)
function {long double} floorl (long double)
function {long double} fmodl (long double, long double)
function {long double} frexpl (long double, int*)
function {long double} ldexpl (long double, int)
function {long double} logl (long double)
function {long double} log10l (long double)
function {long double} log2l (long double)
function {long double} modfl (long double, long double*)
function {long double} powl (long double, long double)
function {long double} sinl (long double)
function {long double} sinhl (long double)
function {long double} sqrtl (long double)
function {long double} tanl (long double)
function {long double} tanhl (long double)
function {long double} erfl (long double)
function {long double} erfcl (long double)
function {long double} hypotl (long double, long double)
#if !defined ISO99 && !defined ISO11 && !defined POSIX && !defined POSIX2008
function {long double} j0l (long double)
function {long double} j1l (long double)
function {long double} jnl (int, long double)
#endif
function {long double} lgammal (long double)
function {long double} tgammal (long double)
#if !defined ISO99 && !defined ISO11 && !defined POSIX && !defined POSIX2008
function {long double} y0l (long double)
function {long double} y1l (long double)
function {long double} ynl (int, long double)
#endif
function {long double} acoshl (long double)
function {long double} asinhl (long double)
function {long double} atanhl (long double)
function {long double} cbrtl (long double)
function {long double} expm1l (long double)
function int ilogbl (long double)
function {long double} log1pl (long double)
function {long double} logbl (long double)
function {long double} nextafterl (long double, long double)
function {long double} nexttowardl (long double, long double)
function {long double} nearbyintl (long double)
function {long double} remainderl (long double, long double)
function {long double} rintl (long double)
function {long double} roundl (long double)
function {long double} truncl (long double)
function long lrintl (long double)
function {long long} llrintl (long double)
function long lroundl (long double)
function {long long} llroundl (long double)
function {long double} remquol (long double, long double, int*)
function {long double} scalbnl (long double, int)
function {long double} scalblnl (long double, long)
function {long double} fdiml (long double, long double)
function {long double} fmaxl (long double, long double)
function {long double} fminl (long double, long double)
function {long double} fmal (long double, long double, long double)
function {long double} nanl (const char*)
#else
allow acosf
allow asinf
allow atanf
allow atan2f
allow ceilf
allow cosf
allow coshf
allow expf
allow fabsf
allow floorf
allow fmodf
allow frexpf
allow ldexpf
allow logf
allow log10f
allow modff
allow powf
allow sinf
allow sinhf
allow sqrtf
allow tanf
allow tanhf

allow acosl
allow asinl
allow atanl
allow atan2l
allow ceill
allow cosl
allow coshl
allow expl
allow fabsl
allow floorl
allow fmodl
allow frexpl
allow ldexpl
allow logl
allow log10l
allow modfl
allow powl
allow sinl
allow sinhl
allow sqrtl
allow tanl
allow tanhl
#endif

#if !defined ISO && !defined ISO99 && !defined ISO11
allow *_t
#endif
#if !defined ISO && !defined POSIX && !defined XPG3 && !defined XPG4 && !defined UNIX98
allow FP_[ABCDEFGHIJKLMNOPQRSTUVWXYZ]*
#endif
