macro-constant HUGE_VAL {double}

#if !defined ISO && !defined POSIX
# if !defined XPG4 && !defined XPG42 && !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 XPG4 || defined XPG42 || 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 XPG4 && !defined XPG42 && !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 XPG4 && !defined XPG42 && !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 XPG4 && !defined XPG42 && !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 XPG4 && !defined XPG42 && !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 XPG4 || defined XPG42 || 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 XPG4 && !defined XPG42 && !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 XPG4
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 XPG42 && !defined UNIX98
function double nexttoward (double, long double)
function double nearbyint (double)
#  endif
function double remainder (double, double)
function double rint (double)
#  if !defined XPG42 && !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 XPG42 || defined UNIX98 || defined XOPEN2K
function double scalb (double, double)
#  endif
#  if !defined XPG42 && !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 XPG4 && !defined XPG42 && !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)
function float lgammaf (float)
function float tgammaf (float)
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)
function {long double} lgammal (long double)
function {long double} tgammal (long double)
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 XPG4 && !defined XPG42 && !defined UNIX98
allow FP_[ABCDEFGHIJKLMNOPQRSTUVWXYZ]*
#endif
