root/tests/lib/lua/libm/h_lualibm.c
#include <math.h>
#include <stdio.h>

#define TEST(M_) printf("%-24s%+2.13f\n", #M_, M_)
#define TESTI(M_) printf("%-24s%d\n", #M_, M_)

int
main(void)
{
        TEST(M_E);
        TEST(M_LOG2E);
        TEST(M_LOG10E);
        TEST(M_LN2);
        TEST(M_LN10);
        TEST(M_PI);
        TEST(M_PI_2);
        TEST(M_PI_4);
        TEST(M_1_PI);
        TEST(M_2_PI);
        TEST(M_2_SQRTPI);
        TEST(M_SQRT2);
        TEST(M_SQRT1_2);

        TEST(cos(M_PI_2));
        TEST(acos(cos(M_PI_2)));
        TEST(cosh(M_SQRT1_2));
        TEST(acosh(cosh(M_SQRT1_2)));
        TEST(sin(M_PI_2));
        TEST(asin(sin(M_PI_2)));
        TEST(sinh(M_PI_2));
        TEST(asinh(sinh(M_PI_2)));
        TEST(tan(M_SQRT2));
        TEST(atan(tan(M_SQRT2)));
        TEST(tanh(M_SQRT2));
        TEST(atanh(tanh(M_SQRT2)));
        TEST(atan2(M_SQRT2, M_SQRT2));
        TEST(cbrt(8.0));
        TEST(ceil(M_PI));
        TEST(ceil(M_E));
        TEST(copysign(-2.0, 10.0));
        TEST(copysign(2.0, -10.0));
        TEST(erf(M_SQRT1_2));
        TEST(erfc(M_SQRT1_2));
        TEST(exp(M_PI_4));
        TEST(exp2(3.0));
        TEST(expm1(M_PI_4));
        TEST(fabs(-M_SQRT2));
        TEST(fabs(M_SQRT2));
        TEST(fdim(M_PI, M_PI_2));
        TEST(fdim(M_PI, -M_PI_2));
        TESTI(finite(1.0 / 0.0));
        TEST(floor(M_PI));
        TEST(floor(M_E));
        TEST(fma(M_PI, M_E, M_SQRT2));
        TEST(fmax(M_PI, M_E));
        TEST(fmin(M_PI, M_E));
        TEST(fmod(100.5, 10.0));
        TEST(gamma(5.0));
        TEST(hypot(3.0, 4.0));
        printf("%-24s%d\n", "ilogb(10.0)", ilogb(10.0));
        TESTI(isinf(1.0 / 0.0));
        TESTI(isnan(log(-1.0)));
        TEST(j0(M_PI));
        TEST(j1(M_PI));
        TEST(jn(3, M_PI));
        TEST(lgamma(M_PI));
        TEST(log(M_E));
        TEST(log10(100.0));
        TEST(log1p(M_PI));
        TEST(nan(""));
#ifdef notyet
        // XXX: vax
        TEST(nextafter(1.0e-14, 1.0));
#endif
        TEST(pow(M_SQRT2, 2.0));
        TEST(remainder(M_PI, M_E));
        TEST(rint(M_PI));
        TEST(rint(M_E));
        printf("%-24s%+2.13f\n", "scalbn(1.0, 2)", scalbn(1.0, 2));
        TEST(sin(M_PI_4));
        TEST(sinh(M_PI_4));
        TEST(sqrt(9.0));
        TEST(tan(M_PI_4));
        TEST(tanh(M_PI_4));
        TEST(trunc(M_PI));
        TEST(trunc(M_E));
        TEST(y0(M_PI));
        TEST(y1(M_PI));
        TEST(yn(3, M_PI));

        return 0;
}