X-Git-Url: http://erislabs.net/gitweb/?a=blobdiff_plain;f=lib%2Fasinl.c;h=c7ba71df88fc4e988bff450a0e6e3d037a960aad;hb=23eecb48e39afd0d267d64d40ba6bf97aa865e13;hp=5dee0cbc86431d636ad6337016947101cdaf5314;hpb=441aa3044f43e5572f58c354f01e6bc070acd5c7;p=gnulib.git diff --git a/lib/asinl.c b/lib/asinl.c index 5dee0cbc8..c7ba71df8 100644 --- a/lib/asinl.c +++ b/lib/asinl.c @@ -14,6 +14,18 @@ /* Specification. */ #include +#if HAVE_SAME_LONG_DOUBLE_AS_DOUBLE + +long double +asinl (long double x) +{ + return asin (x); +} + +#else + +/* Code based on glibc/sysdeps/ieee754/ldbl-128/e_asinl.c. */ + /* Long double expansions contributed by Stephen L. Moshier @@ -183,38 +195,40 @@ asinl (long double x) t = asinr5625 + p / q; } else - t = pio2_hi + pio2_lo - 2 * asinl(sqrtl((1-y)/2)); + t = pio2_hi + pio2_lo - 2 * asinl (sqrtl ((1 - y) / 2)); return t * sign; } +#endif + #if 0 int main (void) { printf ("%.18Lg %.18Lg\n", - asinl(1.0L), + asinl (1.0L), 1.5707963267948966192313216916397514420984L); printf ("%.18Lg %.18Lg\n", - asinl(0.7071067811865475244008443621048490392848L), + asinl (0.7071067811865475244008443621048490392848L), 0.7853981633974483096156608458198757210492L); printf ("%.18Lg %.18Lg\n", - asinl(0.5L), + asinl (0.5L), 0.5235987755982988730771072305465838140328L); printf ("%.18Lg %.18Lg\n", - asinl(0.3090169943749474241022934171828190588600L), + asinl (0.3090169943749474241022934171828190588600L), 0.3141592653589793238462643383279502884196L); printf ("%.18Lg %.18Lg\n", - asinl(-1.0L), + asinl (-1.0L), -1.5707963267948966192313216916397514420984L); printf ("%.18Lg %.18Lg\n", - asinl(-0.7071067811865475244008443621048490392848L), + asinl (-0.7071067811865475244008443621048490392848L), -0.7853981633974483096156608458198757210492L); printf ("%.18Lg %.18Lg\n", - asinl(-0.5L), + asinl (-0.5L), -0.5235987755982988730771072305465838140328L); printf ("%.18Lg %.18Lg\n", - asinl(-0.3090169943749474241022934171828190588600L), + asinl (-0.3090169943749474241022934171828190588600L), -0.3141592653589793238462643383279502884196L); } #endif