diff options
Diffstat (limited to 'sysdeps')
-rw-r--r-- | sysdeps/i386/fpu/libm-test-ulps | 20 | ||||
-rw-r--r-- | sysdeps/ieee754/ldbl-96/e_asinl.c | 2 |
2 files changed, 17 insertions, 5 deletions
diff --git a/sysdeps/i386/fpu/libm-test-ulps b/sysdeps/i386/fpu/libm-test-ulps index b1196bbf47..97619e8cfd 100644 --- a/sysdeps/i386/fpu/libm-test-ulps +++ b/sysdeps/i386/fpu/libm-test-ulps @@ -11,10 +11,22 @@ ldouble: 1 ildouble: 1 # asin +Test "asin (0.5) == pi/6": +ldouble: 1 +ildouble: 1 +Test "asin (-0.5) == -pi/6": +ldouble: 1 +ildouble: 1 +Test "asin (1.0) == pi/2": +ldouble: 1 +ildouble: 1 +Test "asin (-1.0) == -pi/2": +ldouble: 1 +ildouble: 1 Test "asin (0.7) == 0.77539749661075306374035335271498708": double: 1 -ildouble: 1147 -ldouble: 1147 +ldouble: 1 +ildouble: 1 # asinh Test "asinh (0.7) == 0.652666566082355786": @@ -1146,8 +1158,8 @@ ldouble: 1 Function: "asin": double: 1 -ildouble: 1147 -ldouble: 1147 +ldouble: 1 +ildouble: 1 Function: "asinh": ildouble: 656 diff --git a/sysdeps/ieee754/ldbl-96/e_asinl.c b/sysdeps/ieee754/ldbl-96/e_asinl.c index 202e245a41..e469431b0d 100644 --- a/sysdeps/ieee754/ldbl-96/e_asinl.c +++ b/sysdeps/ieee754/ldbl-96/e_asinl.c @@ -92,7 +92,7 @@ __ieee754_asinl (x) ix = (ix << 16) | (i0 >> 16); if (ix >= 0x3fff8000) { /* |x|>= 1 */ - if (ix < 0x7fff0000 && ((i0 - 0x80000000) | i1) == 0) + if (ix == 0x3fff8000 && ((i0 - 0x80000000) | i1) == 0) /* asin(1)=+-pi/2 with inexact */ return x * pio2_hi + x * pio2_lo; return (x - x) / (x - x); /* asin(|x|>1) is NaN */ |