/* STUB MATH LIBRARY */ #include #include #include extern char * _argv_0; #define BAD do { if (getenv("LIBM_DEBUG")) { fprintf(stderr, "%s called bad math function %s\n", _argv_0, __func__); } } while (0) double acos(double x) { BAD; return 0.0; } double asin(double x) { BAD; return 0.0; } double ldexp(double a, int exp) { double out = a; while (exp) { out *= 2.0; exp--; } return out; } double log(double x) { BAD; return 0.0; } double log10(double x) { BAD; return 0.0; } double log2(double x) { BAD; return 0.0; } double log1p(double x) { BAD; return log(x+1.0); } double expm1(double x) { BAD; return exp(x) - 1.0; } double trunc(double x) { BAD; return (double)(long)x; } double acosh(double x) { BAD; return 0.0; } double asinh(double x) { BAD; return 0.0; } double atanh(double x) { BAD; return 0.0; } double erf(double x) { BAD; return 0.0; } double erfc(double x) { BAD; return 0.0; } double gamma(double x) { BAD; return 0.0; } double lgamma(double x){ BAD; return 0.0; } double remainder(double x, double y) { BAD; return 0.0; } double copysign(double x, double y) { if (y < 0) { if (x < 0) return x; return -x; } else { if (x < 0) return -x; return x; } }