#ifndef CMATH_H
#define CMATH_H

#ifdef __cplusplus
extern "C" {
#endif

inline long double fabsl(long double x) {
    return  __fabs((double)x);
}

double acos(double);
double asin(double);
double atan(double);
double atan2(double, double);
double ceil(double);
double floor(double);
double frexp(double, int *);
double ldexp(double, int);
double sqrt(double);

double pow(double, double);

double log(double);
double log10(double);

double fmod(double, double);

double sin(double x);
double cos(double x);

double __ieee754_acos(double);
double __ieee754_fmod(double, double);
double __ieee754_log(double);
double __ieee754_log10(double);
double __ieee754_pow(double, double);
double __ieee754_sqrt(double);
double __ieee754_atan2(double, double);
double __ieee754_asin(double);

double scalbn(double, int);

double __kernel_sin(double, double, int);
double __kernel_cos(double, double);
double __kernel_tan(double, double, int);

int __ieee754_rem_pio2(double, double *);

#ifdef __MWERKS__
int __float_huge[];
int __float_nan[];
int __double_huge[];

#define INFINITY (*(float*) __float_huge)	
#define NAN (*(float*) __float_nan)
#define HUGE_VAL (*(double*) __double_huge) 
#endif

#ifdef __cplusplus
};
#endif

#endif // CMATH_H