X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=src%2Fmath%2Facosl.c;h=83857d49b44f0bd68e44f5d69e0790cb81576a29;hb=3d3903fa5bd18f66c4f22fb766615d84b9519aa0;hp=170520fe9c3e794acacd388d5be87324a2331938;hpb=01084202815fefbb7db23825d8b11a570c455e13;p=musl diff --git a/src/math/acosl.c b/src/math/acosl.c index 170520fe..83857d49 100644 --- a/src/math/acosl.c +++ b/src/math/acosl.c @@ -23,10 +23,7 @@ long double acosl(long double x) } #elif (LDBL_MANT_DIG == 64 || LDBL_MANT_DIG == 113) && LDBL_MAX_EXP == 16384 #include "__invtrigl.h" - -static const long double -one = 1.00000000000000000000e+00, -pi = 3.14159265358979323846264338327950280e+00L; +#define ACOS_CONST (BIAS - 65) /* 2**-65 */ long double acosl(long double x) { @@ -42,7 +39,8 @@ long double acosl(long double x) if (expsign > 0) return 0.0; /* acos(1) = 0 */ else - return pi + 2.0 * pio2_lo; /* acos(-1)= pi */ + // FIXME + return pi_hi + 2.0 * pio2_lo; /* acos(-1)= pi */ } return (x - x) / (x - x); /* acos(|x|>1) is NaN */ } @@ -55,15 +53,15 @@ long double acosl(long double x) r = p / q; return pio2_hi - (x - (pio2_lo - x * r)); } else if (expsign < 0) { /* x < -0.5 */ - z = (one + x) * 0.5; + z = (1.0 + x) * 0.5; p = P(z); q = Q(z); s = sqrtl(z); r = p / q; w = r * s - pio2_lo; - return pi - 2.0 * (s + w); + return pi_hi - 2.0 * (s + w); } else { /* x > 0.5 */ - z = (one - x) * 0.5; + z = (1.0 - x) * 0.5; s = sqrtl(z); u.e = s; u.bits.manl = 0;