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.21-247-gae63c7e


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  ae63c7ebedcaa57017df4cb8ff0494a4705321ee (commit)
      from  d5856d06c3ef62907f2865c502ada4baf3c9efa1 (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=ae63c7ebedcaa57017df4cb8ff0494a4705321ee

commit ae63c7ebedcaa57017df4cb8ff0494a4705321ee
Author: Joseph Myers <joseph@codesourcery.com>
Date:   Wed Apr 8 17:14:12 2015 +0000

    Fix dbl-64 atan in non-default rounding modes (bug 18197).
    
    The dbl-64 implementation of atan does computations that expect to run
    in round-to-nearest mode, and in other modes the errors can accumulate
    to more than the maximum accepted 9ulp.  This patch makes it use
    FE_TONEAREST internally, similar to other functions with such issues.
    
    Tested for x86_64 and x86; no ulps updates needed.
    
    	[BZ #18197]
    	* sysdeps/ieee754/dbl-64/s_atan.c: Include <fenv.h>.
    	(atan): Set FE_TONEAREST mode for internal computations.
    	* math/auto-libm-test-in: Add more tests of atan.
    	* math/auto-libm-test-out: Regenerated.

diff --git a/ChangeLog b/ChangeLog
index 557871a..12f264b 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,11 @@
+2015-04-08  Joseph Myers  <joseph@codesourcery.com>
+
+	[BZ #18197]
+	* sysdeps/ieee754/dbl-64/s_atan.c: Include <fenv.h>.
+	(atan): Set FE_TONEAREST mode for internal computations.
+	* math/auto-libm-test-in: Add more tests of atan.
+	* math/auto-libm-test-out: Regenerated.
+
 2015-04-07  James Cowgill  <james410@cowgill.org.uk>
 
 	[BZ #17930]
diff --git a/NEWS b/NEWS
index d36fed5..b6776bc 100644
--- a/NEWS
+++ b/NEWS
@@ -15,7 +15,7 @@ Version 2.22
   17836, 17912, 17916, 17930, 17932, 17944, 17949, 17964, 17965, 17967,
   17969, 17978, 17987, 17991, 17996, 17998, 17999, 18019, 18020, 18029,
   18030, 18032, 18036, 18038, 18039, 18042, 18043, 18046, 18047, 18068,
-  18080, 18093, 18100, 18104, 18110, 18111, 18128, 18138, 18185.
+  18080, 18093, 18100, 18104, 18110, 18111, 18128, 18138, 18185, 18197.
 
 * A powerpc and powerpc64 optimization for TLS, similar to TLS descriptors
   for LD and GD on x86 and x86-64, has been implemented.  You will need
diff --git a/math/auto-libm-test-in b/math/auto-libm-test-in
index 939f6ea..d0026d5 100644
--- a/math/auto-libm-test-in
+++ b/math/auto-libm-test-in
@@ -240,6 +240,8 @@ atan 1e6
 atan 0x1p-100
 atan 0x1p-600
 atan 0x1p-10000
+atan -0x3.b02d84p-4
+atan -0x3.3fb708p-4
 atan min
 atan -min
 atan min_subnorm
diff --git a/math/auto-libm-test-out b/math/auto-libm-test-out
index 68435ab..3550f33 100644
--- a/math/auto-libm-test-out
+++ b/math/auto-libm-test-out
@@ -7877,6 +7877,56 @@ atan 0x1p-10000
 = atan tonearest ldbl-128 0x1p-10000L : 0x1p-10000L : inexact-ok
 = atan towardzero ldbl-128 0x1p-10000L : 0xf.fffffffffffffffffffffffffff8p-10004L : inexact-ok
 = atan upward ldbl-128 0x1p-10000L : 0x1p-10000L : inexact-ok
+atan -0x3.b02d84p-4
+= atan downward flt-32 -0x3.b02d84p-4f : -0x3.9ff7e4p-4f : inexact-ok
+= atan tonearest flt-32 -0x3.b02d84p-4f : -0x3.9ff7ep-4f : inexact-ok
+= atan towardzero flt-32 -0x3.b02d84p-4f : -0x3.9ff7ep-4f : inexact-ok
+= atan upward flt-32 -0x3.b02d84p-4f : -0x3.9ff7ep-4f : inexact-ok
+= atan downward dbl-64 -0x3.b02d84p-4 : -0x3.9ff7e1f81370cp-4 : inexact-ok
+= atan tonearest dbl-64 -0x3.b02d84p-4 : -0x3.9ff7e1f81370cp-4 : inexact-ok
+= atan towardzero dbl-64 -0x3.b02d84p-4 : -0x3.9ff7e1f81370ap-4 : inexact-ok
+= atan upward dbl-64 -0x3.b02d84p-4 : -0x3.9ff7e1f81370ap-4 : inexact-ok
+= atan downward ldbl-96-intel -0x3.b02d84p-4L : -0x3.9ff7e1f81370b934p-4L : inexact-ok
+= atan tonearest ldbl-96-intel -0x3.b02d84p-4L : -0x3.9ff7e1f81370b93p-4L : inexact-ok
+= atan towardzero ldbl-96-intel -0x3.b02d84p-4L : -0x3.9ff7e1f81370b93p-4L : inexact-ok
+= atan upward ldbl-96-intel -0x3.b02d84p-4L : -0x3.9ff7e1f81370b93p-4L : inexact-ok
+= atan downward ldbl-96-m68k -0x3.b02d84p-4L : -0x3.9ff7e1f81370b934p-4L : inexact-ok
+= atan tonearest ldbl-96-m68k -0x3.b02d84p-4L : -0x3.9ff7e1f81370b93p-4L : inexact-ok
+= atan towardzero ldbl-96-m68k -0x3.b02d84p-4L : -0x3.9ff7e1f81370b93p-4L : inexact-ok
+= atan upward ldbl-96-m68k -0x3.b02d84p-4L : -0x3.9ff7e1f81370b93p-4L : inexact-ok
+= atan downward ldbl-128 -0x3.b02d84p-4L : -0x3.9ff7e1f81370b93195e0357d0b5ap-4L : inexact-ok
+= atan tonearest ldbl-128 -0x3.b02d84p-4L : -0x3.9ff7e1f81370b93195e0357d0b5ap-4L : inexact-ok
+= atan towardzero ldbl-128 -0x3.b02d84p-4L : -0x3.9ff7e1f81370b93195e0357d0b58p-4L : inexact-ok
+= atan upward ldbl-128 -0x3.b02d84p-4L : -0x3.9ff7e1f81370b93195e0357d0b58p-4L : inexact-ok
+= atan downward ldbl-128ibm -0x3.b02d84p-4L : -0x3.9ff7e1f81370b93195e0357d0cp-4L : inexact-ok
+= atan tonearest ldbl-128ibm -0x3.b02d84p-4L : -0x3.9ff7e1f81370b93195e0357d0bp-4L : inexact-ok
+= atan towardzero ldbl-128ibm -0x3.b02d84p-4L : -0x3.9ff7e1f81370b93195e0357d0bp-4L : inexact-ok
+= atan upward ldbl-128ibm -0x3.b02d84p-4L : -0x3.9ff7e1f81370b93195e0357d0bp-4L : inexact-ok
+atan -0x3.3fb708p-4
+= atan downward flt-32 -0x3.3fb708p-4f : -0x3.348f0cp-4f : inexact-ok
+= atan tonearest flt-32 -0x3.3fb708p-4f : -0x3.348f08p-4f : inexact-ok
+= atan towardzero flt-32 -0x3.3fb708p-4f : -0x3.348f08p-4f : inexact-ok
+= atan upward flt-32 -0x3.3fb708p-4f : -0x3.348f08p-4f : inexact-ok
+= atan downward dbl-64 -0x3.3fb708p-4 : -0x3.348f092072332p-4 : inexact-ok
+= atan tonearest dbl-64 -0x3.3fb708p-4 : -0x3.348f092072332p-4 : inexact-ok
+= atan towardzero dbl-64 -0x3.3fb708p-4 : -0x3.348f09207233p-4 : inexact-ok
+= atan upward dbl-64 -0x3.3fb708p-4 : -0x3.348f09207233p-4 : inexact-ok
+= atan downward ldbl-96-intel -0x3.3fb708p-4L : -0x3.348f092072331fdcp-4L : inexact-ok
+= atan tonearest ldbl-96-intel -0x3.3fb708p-4L : -0x3.348f092072331fd8p-4L : inexact-ok
+= atan towardzero ldbl-96-intel -0x3.3fb708p-4L : -0x3.348f092072331fd8p-4L : inexact-ok
+= atan upward ldbl-96-intel -0x3.3fb708p-4L : -0x3.348f092072331fd8p-4L : inexact-ok
+= atan downward ldbl-96-m68k -0x3.3fb708p-4L : -0x3.348f092072331fdcp-4L : inexact-ok
+= atan tonearest ldbl-96-m68k -0x3.3fb708p-4L : -0x3.348f092072331fd8p-4L : inexact-ok
+= atan towardzero ldbl-96-m68k -0x3.3fb708p-4L : -0x3.348f092072331fd8p-4L : inexact-ok
+= atan upward ldbl-96-m68k -0x3.3fb708p-4L : -0x3.348f092072331fd8p-4L : inexact-ok
+= atan downward ldbl-128 -0x3.3fb708p-4L : -0x3.348f092072331fd8ca0cbff348d8p-4L : inexact-ok
+= atan tonearest ldbl-128 -0x3.3fb708p-4L : -0x3.348f092072331fd8ca0cbff348d6p-4L : inexact-ok
+= atan towardzero ldbl-128 -0x3.3fb708p-4L : -0x3.348f092072331fd8ca0cbff348d6p-4L : inexact-ok
+= atan upward ldbl-128 -0x3.3fb708p-4L : -0x3.348f092072331fd8ca0cbff348d6p-4L : inexact-ok
+= atan downward ldbl-128ibm -0x3.3fb708p-4L : -0x3.348f092072331fd8ca0cbff349p-4L : inexact-ok
+= atan tonearest ldbl-128ibm -0x3.3fb708p-4L : -0x3.348f092072331fd8ca0cbff349p-4L : inexact-ok
+= atan towardzero ldbl-128ibm -0x3.3fb708p-4L : -0x3.348f092072331fd8ca0cbff348p-4L : inexact-ok
+= atan upward ldbl-128ibm -0x3.3fb708p-4L : -0x3.348f092072331fd8ca0cbff348p-4L : inexact-ok
 atan min
 = atan downward flt-32 0x4p-128f : 0x3.fffff8p-128f : inexact-ok underflow-ok errno-erange-ok
 = atan tonearest flt-32 0x4p-128f : 0x4p-128f : inexact-ok underflow-ok errno-erange-ok
diff --git a/sysdeps/ieee754/dbl-64/s_atan.c b/sysdeps/ieee754/dbl-64/s_atan.c
index 7b598f1..5035ae8 100644
--- a/sysdeps/ieee754/dbl-64/s_atan.c
+++ b/sysdeps/ieee754/dbl-64/s_atan.c
@@ -41,6 +41,7 @@
 #include "MathLib.h"
 #include "uatan.tbl"
 #include "atnat.h"
+#include <fenv.h>
 #include <float.h>
 #include <math.h>
 #include <math_private.h>
@@ -81,6 +82,7 @@ atan (double x)
     return x + x;
 
   /* Regular values of x, including denormals +-0 and +-INF */
+  SET_RESTORE_ROUND (FE_TONEAREST);
   u = (x < 0) ? -x : x;
   if (u < C)
     {

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

Summary of changes:
 ChangeLog                       |    8 ++++++
 NEWS                            |    2 +-
 math/auto-libm-test-in          |    2 +
 math/auto-libm-test-out         |   50 +++++++++++++++++++++++++++++++++++++++
 sysdeps/ieee754/dbl-64/s_atan.c |    2 +
 5 files changed, 63 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]