[PATCH][BZ #16447] Add testcase for expl

Stefan Liebler stli@linux.vnet.ibm.com
Mon Feb 10 15:14:00 GMT 2014


On 02/10/2014 03:57 PM, Joseph S. Myers wrote:
> On Mon, 10 Feb 2014, Stefan Liebler wrote:
>
>> 2014-02-10  Stefan Liebler  <stli@linux.vnet.ibm.com>
>>
>>      [BZ #16447]
>>      * math/auto-libm-test-in: Add testcase for expl
>>      * math/auto-libm-test-out: Likewise
>>      * sysdeps/ieee754/ldbl-128/e_expl.c: Fix calculation of unsafe
>>      * sysdeps/s390/fpu/libm-test-ulps: Adjust ULPs for added testcase
>
> OK (with trailing "." on ChangeLog entries, the entry for
> auto-libm-test-out being "Regenerated.", and that for expl giving the
> function name (__ieee754_expl)).
>

ok thanks.

---
2014-02-10  Stefan Liebler  <stli@linux.vnet.ibm.com>

     [BZ #16447]
     * math/auto-libm-test-in: Add testcase for expl.
     * math/auto-libm-test-out: Regenerated.
     * sysdeps/ieee754/ldbl-128/e_expl.c (__ieee754_expl): Fix 
calculation of unsafe.
     * sysdeps/s390/fpu/libm-test-ulps: Adjust ULPs for added testcase.

---

diff --git a/math/auto-libm-test-in b/math/auto-libm-test-in
index b919dbc..c620361 100644
--- a/math/auto-libm-test-in
+++ b/math/auto-libm-test-in
@@ -725,6 +725,7 @@ exp max xfail-rounding:dbl-64 xfail-rounding:ldbl-128ibm
  exp -7.4444006192138124e+02
  exp -0x1.75f113c30b1c8p+9
  exp -max
+exp -11342.8125

  exp10 0
  exp10 -0
diff --git a/math/auto-libm-test-out b/math/auto-libm-test-out
index 8955e18..93818e8 100644
--- a/math/auto-libm-test-out
+++ b/math/auto-libm-test-out
@@ -62149,6 +62149,31 @@ exp -max
  = exp tonearest ldbl-128ibm -0xf.ffffffffffffbffffffffffffcp+1020L : 
0x0p+0L : inexact-ok underflow errno-erange
  = exp towardzero ldbl-128ibm -0xf.ffffffffffffbffffffffffffcp+1020L : 
0x0p+0L : inexact-ok underflow errno-erange
  = exp upward ldbl-128ibm -0xf.ffffffffffffbffffffffffffcp+1020L : 
0x4p-1076L : inexact-ok underflow errno-erange-ok
+exp -11342.8125
+= exp downward flt-32 -0x2.c4edp+12f : 0x0p+0f : inexact-ok underflow 
errno-erange
+= exp tonearest flt-32 -0x2.c4edp+12f : 0x0p+0f : inexact-ok underflow 
errno-erange
+= exp towardzero flt-32 -0x2.c4edp+12f : 0x0p+0f : inexact-ok underflow 
errno-erange
+= exp upward flt-32 -0x2.c4edp+12f : 0x8p-152f : inexact-ok underflow 
errno-erange-ok
+= exp downward dbl-64 -0x2.c4edp+12 : 0x0p+0 : inexact-ok underflow 
errno-erange
+= exp tonearest dbl-64 -0x2.c4edp+12 : 0x0p+0 : inexact-ok underflow 
errno-erange
+= exp towardzero dbl-64 -0x2.c4edp+12 : 0x0p+0 : inexact-ok underflow 
errno-erange
+= exp upward dbl-64 -0x2.c4edp+12 : 0x4p-1076 : inexact-ok underflow 
errno-erange-ok
+= exp downward ldbl-96-intel -0x2.c4edp+12L : 
0xd.be48e2532594eccp-16368L : inexact-ok
+= exp tonearest ldbl-96-intel -0x2.c4edp+12L : 
0xd.be48e2532594eccp-16368L : inexact-ok
+= exp towardzero ldbl-96-intel -0x2.c4edp+12L : 
0xd.be48e2532594eccp-16368L : inexact-ok
+= exp upward ldbl-96-intel -0x2.c4edp+12L : 0xd.be48e2532594ecdp-16368L 
: inexact-ok
+= exp downward ldbl-96-m68k -0x2.c4edp+12L : 
0xd.be48e2532594eccp-16368L : inexact-ok
+= exp tonearest ldbl-96-m68k -0x2.c4edp+12L : 
0xd.be48e2532594eccp-16368L : inexact-ok
+= exp towardzero ldbl-96-m68k -0x2.c4edp+12L : 
0xd.be48e2532594eccp-16368L : inexact-ok
+= exp upward ldbl-96-m68k -0x2.c4edp+12L : 0xd.be48e2532594ecdp-16368L 
: inexact-ok
+= exp downward ldbl-128 -0x2.c4edp+12L : 
0xd.be48e2532594ecc1a3b8f7ce2038p-16368L : inexact-ok
+= exp tonearest ldbl-128 -0x2.c4edp+12L : 
0xd.be48e2532594ecc1a3b8f7ce2038p-16368L : inexact-ok
+= exp towardzero ldbl-128 -0x2.c4edp+12L : 
0xd.be48e2532594ecc1a3b8f7ce2038p-16368L : inexact-ok
+= exp upward ldbl-128 -0x2.c4edp+12L : 
0xd.be48e2532594ecc1a3b8f7ce204p-16368L : inexact-ok
+= exp downward ldbl-128ibm -0x2.c4edp+12L : 0x0p+0L : inexact-ok 
underflow errno-erange
+= exp tonearest ldbl-128ibm -0x2.c4edp+12L : 0x0p+0L : inexact-ok 
underflow errno-erange
+= exp towardzero ldbl-128ibm -0x2.c4edp+12L : 0x0p+0L : inexact-ok 
underflow errno-erange
+= exp upward ldbl-128ibm -0x2.c4edp+12L : 0x4p-1076L : inexact-ok 
underflow errno-erange-ok
  exp10 0
  = exp10 downward flt-32 0x0p+0f : 0x1p+0f : inexact-ok
  = exp10 tonearest flt-32 0x0p+0f : 0x1p+0f : inexact-ok
diff --git a/sysdeps/ieee754/ldbl-128/e_expl.c 
b/sysdeps/ieee754/ldbl-128/e_expl.c
index 8259758..ae2604e 100644
--- a/sysdeps/ieee754/ldbl-128/e_expl.c
+++ b/sysdeps/ieee754/ldbl-128/e_expl.c
@@ -181,7 +181,7 @@ __ieee754_expl (long double x)
          * __expl_table[T_EXPL_RES2 + tval2];
        n_i = (int)n;
        /* 'unsafe' is 1 iff n_1 != 0.  */
-      unsafe = abs(n_i) >= -LDBL_MIN_EXP - 1;
+      unsafe = abs(n_i) >= 15000;
        ex2_u.ieee.exponent += n_i >> unsafe;

        /* Compute scale = 2^n_1.  */
diff --git a/sysdeps/s390/fpu/libm-test-ulps 
b/sysdeps/s390/fpu/libm-test-ulps
index 786720d..bd423f0 100644
--- a/sysdeps/s390/fpu/libm-test-ulps
+++ b/sysdeps/s390/fpu/libm-test-ulps
@@ -13374,6 +13374,9 @@ double: 1
  idouble: 1

  # exp_upward
+Test "exp_upward (-0x2.c4edp+12)":
+double: 1
+idouble: 1
  Test "exp_upward (-0x2.e870a4p+8)":
  double: 1
  idouble: 1



More information about the Libc-alpha mailing list