This is the mail archive of the glibc-cvs@sourceware.org mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

GNU C Library master sources branch master updated. glibc-2.18-733-g819e5d5


This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "GNU C Library master sources".

The branch, master has been updated
       via  819e5d50dd4d10dc359037eba74c70e74cb42739 (commit)
      from  90b6a1e55fdbb3e6a3132742c26eb19666ad9e33 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
http://sourceware.org/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=819e5d50dd4d10dc359037eba74c70e74cb42739

commit 819e5d50dd4d10dc359037eba74c70e74cb42739
Author: Joseph Myers <joseph@codesourcery.com>
Date:   Thu Jan 2 16:35:46 2014 +0000

    Fix ldbl-128ibm logl inaccuracy (bug 16386).
    
    This patch fixes bug 16386, ldbl-128ibm logl inaccuracy (with
    consequent inaccuracy for lgammal) for arguments where the high double
    is subnormal, which showed up while attempting to regenerate ulps for
    powerpc-nofpu for 2.19.  The problem here is logic failing to allow
    for subnormals when calculating the exponent of the argument.  Tested
    for powerpc-nofpu.
    
    	* sysdeps/ieee754/ldbl-128ibm/e_logl.c (__ieee754_logl): Adjust
    	numbers with subnormal high part when calculating exponent.

diff --git a/ChangeLog b/ChangeLog
index 8200122..7f4d564 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,9 @@
 2014-01-02  Joseph Myers  <joseph@codesourcery.com>
 
+	[BZ #16386]
+	* sysdeps/ieee754/ldbl-128ibm/e_logl.c (__ieee754_logl): Adjust
+	numbers with subnormal high part when calculating exponent.
+
 	[BZ #16385]
 	* sysdeps/ieee754/ldbl-128ibm/s_asinhl.c (__asinhl): Use fabsl not
 	fabs.
diff --git a/NEWS b/NEWS
index c96c0e3..e0ea97a 100644
--- a/NEWS
+++ b/NEWS
@@ -23,7 +23,8 @@ 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, 16385.
+  16338, 16356, 16365, 16366, 16369, 16372, 16375, 16379, 16384, 16385,
+  16386.
 
 * Slovenian translations for glibc messages have been contributed by the
   Translation Project's Slovenian team of translators.
diff --git a/sysdeps/ieee754/ldbl-128ibm/e_logl.c b/sysdeps/ieee754/ldbl-128ibm/e_logl.c
index b7db2b9..58d6bc6 100644
--- a/sysdeps/ieee754/ldbl-128ibm/e_logl.c
+++ b/sysdeps/ieee754/ldbl-128ibm/e_logl.c
@@ -229,6 +229,14 @@ __ieee754_logl(long double x)
       /* Extract exponent and reduce domain to 0.703125 <= u < 1.40625  */
       unsigned int w0;
       e = (int) (m >> 20) - (int) 0x3fe;
+      if (e == -1022)
+	{
+	  x *= 0x1p106L;
+	  xhi = ldbl_high (x);
+	  EXTRACT_WORDS (hx, lx, xhi);
+	  m = hx;
+	  e = (int) (m >> 20) - (int) 0x3fe - 106;
+	}
       m &= 0xfffff;
       w0 = m | 0x3fe00000;
       m |= 0x100000;

-----------------------------------------------------------------------

Summary of changes:
 ChangeLog                            |    4 ++++
 NEWS                                 |    3 ++-
 sysdeps/ieee754/ldbl-128ibm/e_logl.c |    8 ++++++++
 3 files changed, 14 insertions(+), 1 deletions(-)


hooks/post-receive
-- 
GNU C Library master sources


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]