X-Git-Url: http://erislabs.net/gitweb/?a=blobdiff_plain;f=lib%2Fatanl.c;h=88284a67195a329847da18f2f75a57d1a12fd30b;hb=cd56634a4a8179fd5a4419fbb3e27211b042ab1c;hp=19c52e134a20e17b37341c19dae02b3241482d7c;hpb=febae7ee2b8b61030ed32d2b5b53316b240434f2;p=gnulib.git diff --git a/lib/atanl.c b/lib/atanl.c index 19c52e134..88284a671 100644 --- a/lib/atanl.c +++ b/lib/atanl.c @@ -18,9 +18,21 @@ /* Specification. */ #include -/* s_atanl.c +#if HAVE_SAME_LONG_DOUBLE_AS_DOUBLE + +long double +atanl (long double x) +{ + return atan (x); +} + +#else + +/* Code based on glibc/sysdeps/ieee754/ldbl-128/s_atanl.c. */ + +/* s_atanl.c * - * Inverse circular tangent for 128-bit long double precision + * Inverse circular tangent for 128-bit long double precision * (arctangent) * * @@ -185,9 +197,9 @@ atanl (long double x) { /* Infinity. */ if (sign) - return -atantbl[83]; + return -atantbl[83]; else - return atantbl[83]; + return atantbl[83]; } if (sign) @@ -201,7 +213,7 @@ atanl (long double x) else { /* Index of nearest table element. - Roundoff to integer is asymmetrical to avoid cancellation when t < 0 + Roundoff to integer is asymmetrical to avoid cancellation when t < 0 (cf. fdlibm). */ k = 8.0 * x + 0.25; u = 0.125 * k; @@ -222,3 +234,5 @@ atanl (long double x) else return u; } + +#endif