Fix cbrtl for ldbl-96
authorAndreas Schwab <schwab@suse.de>
Wed, 17 Jul 2013 12:53:24 +0000 (14:53 +0200)
committerAndreas Schwab <schwab@suse.de>
Tue, 13 Aug 2013 07:45:02 +0000 (09:45 +0200)
ChangeLog
NEWS
math/libm-test.inc
sysdeps/ieee754/ldbl-96/s_cbrtl.c

index 07617d1..bf48b5d 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,11 @@
+2013-08-13  Andreas Schwab  <schwab@suse.de>
+
+       [BZ #15749]
+       * sysdeps/ieee754/ldbl-96/s_cbrtl.c (__cbrtl): Use fabsl instead
+       of fabs.
+       * math/libm-test.inc (cbrt_test_data) [TEST_LDOUBLE &&
+       LDBL_MAX_EXP >= 16384]: Add tests for it.
+
 2013-08-12  David S. Miller  <davem@davemloft.net>
 
        * version.h (RELEASE): Set to "development".
diff --git a/NEWS b/NEWS
index 3fd5027..b231e97 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -9,6 +9,7 @@ Version 2.19
 
 * The following bugs are resolved with this release:
 
+  15749
 \f
 Version 2.18
 
index 2324d4f..851f1be 100644 (file)
@@ -5845,6 +5845,11 @@ static const struct test_f_f_data cbrt_test_data[] =
     TEST_f_f (cbrt, -27.0, -3.0),
     TEST_f_f (cbrt, 0.9921875L, 0.997389022060725270579075195353955217L),
     TEST_f_f (cbrt, 0.75L, 0.908560296416069829445605878163630251L),
+
+#if defined TEST_LDOUBLE && LDBL_MAX_EXP >= 16384
+    TEST_f_f (cbrt, 0x1p16383L, 0x1p5461L),
+    TEST_f_f (cbrt, 0x1p-16383L, 0x1p-5461L),
+#endif
   };
 
 static void
index b481c84..e6b2f25 100644 (file)
@@ -45,7 +45,7 @@ __cbrtl (long double x)
   int xe;
 
   /* Reduce X.  XM now is an range 1.0 to 0.5.  */
-  xm = __frexpl (fabs (x), &xe);
+  xm = __frexpl (fabsl (x), &xe);
 
   /* If X is not finite or is null return it (with raising exceptions
      if necessary.