#ifndef PBXB64_C17_MATH_H
#define PBXB64_C17_MATH_H

#define HUGE_VAL    1e10000
#define HUGE_VALF   1e10000f
#define HUGE_VALL   1e10000L
#define INFINITY    (1.0/0.0)
#define NAN         (0.0/0.0)
#define FP_INFINITE 1
#define FP_NAN      2
#define FP_NORMAL   3
#define FP_SUBNORMAL 4
#define FP_ZERO     5
#define MATH_ERRNO  1
#define MATH_ERREXCEPT 2
#define math_errhandling MATH_ERRNO

double acos(double x);
double asin(double x);
double atan(double x);
double atan2(double y, double x);
double cos(double x);
double sin(double x);
double tan(double x);
double cosh(double x);
double sinh(double x);
double tanh(double x);
double acosh(double x);
double asinh(double x);
double atanh(double x);
double exp(double x);
double exp2(double x);
double expm1(double x);
double frexp(double x, int *exp);
int    ilogb(double x);
double ldexp(double x, int exp);
double log(double x);
double log10(double x);
double log1p(double x);
double log2(double x);
double logb(double x);
double modf(double x, double *iptr);
double scalbn(double x, int n);
double scalbln(double x, long n);
double cbrt(double x);
double fabs(double x);
double hypot(double x, double y);
double pow(double x, double y);
double sqrt(double x);
double erf(double x);
double erfc(double x);
double lgamma(double x);
double tgamma(double x);
double ceil(double x);
double floor(double x);
double nearbyint(double x);
double rint(double x);
long   lrint(double x);
long long llrint(double x);
double round(double x);
long   lround(double x);
long long llround(double x);
double trunc(double x);
double fmod(double x, double y);
double remainder(double x, double y);
double remquo(double x, double y, int *quo);
double copysign(double x, double y);
double nan(const char *tagp);
double nextafter(double x, double y);
double nexttoward(double x, long double y);
double fdim(double x, double y);
double fmax(double x, double y);
double fmin(double x, double y);
double fma(double x, double y, double z);
int    isinf(double x);
int    isnan(double x);
int    signbit(double x);
int    fpclassify(double x);
int    isfinite(double x);
int    isnormal(double x);

#endif
