about summary refs log tree commit diff
diff options
context:
space:
mode:
authorJoseph Myers <joseph@codesourcery.com>2014-01-02 16:34:24 +0000
committerJoseph Myers <joseph@codesourcery.com>2014-01-02 16:34:24 +0000
commit90b6a1e55fdbb3e6a3132742c26eb19666ad9e33 (patch)
treeab2cb9799bdf0ece9c176bb250db96efbcb83b39
parent396e3ecf3e8f0f05bd7eeaf995a3f0c2327a6cd6 (diff)
downloadglibc-90b6a1e55fdbb3e6a3132742c26eb19666ad9e33.tar.gz
glibc-90b6a1e55fdbb3e6a3132742c26eb19666ad9e33.tar.xz
glibc-90b6a1e55fdbb3e6a3132742c26eb19666ad9e33.zip
Fix ldbl-128ibm asinhl inaccuracy (bug 16385).
This patch fixes bug 16385, ldbl-128ibm asinhl inaccuracy, which
showed up while attempting to regenerate ulps for powerpc-nofpu for
2.19.  The problem here was use of fabs instead of fabsl meaning large
arguments were reduced to the precision of double.  Tested for
powerpc-nofpu.

	* sysdeps/ieee754/ldbl-128ibm/s_asinhl.c (__asinhl): Use fabsl not
	fabs.
-rw-r--r--ChangeLog4
-rw-r--r--NEWS2
-rw-r--r--sysdeps/ieee754/ldbl-128ibm/s_asinhl.c2
3 files changed, 6 insertions, 2 deletions
diff --git a/ChangeLog b/ChangeLog
index 4fae701843..8200122be7 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,9 @@
 2014-01-02  Joseph Myers  <joseph@codesourcery.com>
 
+	[BZ #16385]
+	* sysdeps/ieee754/ldbl-128ibm/s_asinhl.c (__asinhl): Use fabsl not
+	fabs.
+
 	[BZ #16384]
 	* sysdeps/ieee754/ldbl-128ibm/e_acoshl.c (ln2): Initialize with
 	M_LN2l.
diff --git a/NEWS b/NEWS
index c53be8aeba..c96c0e3cd9 100644
--- a/NEWS
+++ b/NEWS
@@ -23,7 +23,7 @@ Version 2.19
   16038, 16041, 16055, 16071, 16072, 16074, 16077, 16078, 16103, 16112,
   16143, 16144, 16146, 16150, 16151, 16153, 16167, 16172, 16195, 16214,
   16245, 16271, 16274, 16283, 16289, 16293, 16314, 16316, 16330, 16337,
-  16338, 16356, 16365, 16366, 16369, 16372, 16375, 16379, 16384.
+  16338, 16356, 16365, 16366, 16369, 16372, 16375, 16379, 16384, 16385.
 
 * Slovenian translations for glibc messages have been contributed by the
   Translation Project's Slovenian team of translators.
diff --git a/sysdeps/ieee754/ldbl-128ibm/s_asinhl.c b/sysdeps/ieee754/ldbl-128ibm/s_asinhl.c
index 63c6edbb1a..043b151fff 100644
--- a/sysdeps/ieee754/ldbl-128ibm/s_asinhl.c
+++ b/sysdeps/ieee754/ldbl-128ibm/s_asinhl.c
@@ -48,7 +48,7 @@ long double __asinhl(long double x)
 	    if(huge+x>one) return x;	/* return x inexact except 0 */
 	}
 	if(ix>0x41b0000000000000LL) {	/* |x| > 2**28 */
-	    w = __ieee754_logl(fabs(x))+ln2;
+	    w = __ieee754_logl(fabsl(x))+ln2;
 	} else if (ix>0x4000000000000000LL) {	/* 2**28 > |x| > 2.0 */
 	    t = fabs(x);
 	    w = __ieee754_logl(2.0*t+one/(__ieee754_sqrtl(x*x+one)+t));