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.23-85-gb55b28e


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  b55b28e6574c215689e4656628b911788870de31 (commit)
      from  6aa3e97e2530f9917f504eb4146af119a3f27229 (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=b55b28e6574c215689e4656628b911788870de31

commit b55b28e6574c215689e4656628b911788870de31
Author: Joseph Myers <joseph@codesourcery.com>
Date:   Thu Mar 10 23:48:46 2016 +0000

    Allow spurious underflow / inexact for ldbl-128ibm.
    
    A large number of the test-ldouble failures seen for ldbl-128ibm are
    spurious "underflow" and "inexact" exceptions.  These arise from such
    exceptions in the underlying arithmetic; unlike other spurious
    exceptions from that arithmetic, they do not in general relate to
    cases where the returned result is also substantially inaccurate, are
    not so readily avoidable by appropriately conditional libgcc patches,
    and are widespread enough to be hard to handle through individual
    XFAILing of the affected tests.
    
    Thus, this patch documents relaxed accuracy goals for libm functions
    for IBM long double and makes libm-test.inc reflect these spurious
    exceptions in ldbl-128ibm arithmetic and always allow them in
    ldbl-128ibm testing (while still not allowing these exceptions to be
    missing where required to be present).  Tested for powerpc.
    
    	* manual/math.texi (Errors in Math Functions): Document relaxed
    	accuracy goals for IBM long double.
    	* math/libm-test.inc (test_exceptions): Always allow spurious
    	"underflow" and "inexact" exceptions for IBM long double.

diff --git a/ChangeLog b/ChangeLog
index 9cd1d70..23487d7 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+2016-03-10  Joseph Myers  <joseph@codesourcery.com>
+
+	* manual/math.texi (Errors in Math Functions): Document relaxed
+	accuracy goals for IBM long double.
+	* math/libm-test.inc (test_exceptions): Always allow spurious
+	"underflow" and "inexact" exceptions for IBM long double.
+
 2016-03-10  H.J. Lu  <hongjiu.lu@intel.com>
 
 	[BZ #19762]
diff --git a/manual/math.texi b/manual/math.texi
index 72f3fda..5c9f7b9 100644
--- a/manual/math.texi
+++ b/manual/math.texi
@@ -1327,6 +1327,16 @@ necessarily the exact value actually passed with discontiguous
 mantissa bits.
 
 @item
+For the IBM @code{long double} format, functions whose results are
+fully specified by reference to corresponding IEEE 754 floating-point
+operations have the same accuracy goals as other functions, but with
+the error bound being the same as that for division (3ulp).
+Furthermore, ``inexact'' and ``underflow'' exceptions may be raised
+for all functions for any inputs, even where such exceptions are
+inconsistent with the returned value, since the underlying
+floating-point arithmetic has that property.
+
+@item
 Functions behave as if the infinite-precision result computed is zero,
 infinity or NaN if and only if that is the mathematically correct
 infinite-precision result.  They behave as if the infinite-precision
diff --git a/math/libm-test.inc b/math/libm-test.inc
index c9925fd..f1ba7dd 100644
--- a/math/libm-test.inc
+++ b/math/libm-test.inc
@@ -672,13 +672,20 @@ test_exceptions (const char *test_name, int exception)
 	test_single_exception (test_name, exception, OVERFLOW_EXCEPTION,
 			       FE_OVERFLOW, "Overflow");
 #endif
+      /* Spurious "underflow" and "inexact" exceptions are always
+	 allowed for IBM long double, in line with the underlying
+	 arithmetic.  */
 #ifdef FE_UNDERFLOW
-      if ((exception & UNDERFLOW_EXCEPTION_OK) == 0)
+      if ((exception & UNDERFLOW_EXCEPTION_OK) == 0
+	  && !(TEST_COND_ldbl_128ibm
+	       && (exception & UNDERFLOW_EXCEPTION) == 0))
 	test_single_exception (test_name, exception, UNDERFLOW_EXCEPTION,
 			       FE_UNDERFLOW, "Underflow");
 #endif
 #ifdef FE_INEXACT
-      if ((exception & (INEXACT_EXCEPTION | NO_INEXACT_EXCEPTION)) != 0)
+      if ((exception & (INEXACT_EXCEPTION | NO_INEXACT_EXCEPTION)) != 0
+	  && !(TEST_COND_ldbl_128ibm
+	       && (exception & NO_INEXACT_EXCEPTION) != 0))
 	test_single_exception (test_name, exception, INEXACT_EXCEPTION,
 			       FE_INEXACT, "Inexact");
 #endif

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

Summary of changes:
 ChangeLog          |    7 +++++++
 manual/math.texi   |   10 ++++++++++
 math/libm-test.inc |   11 +++++++++--
 3 files changed, 26 insertions(+), 2 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]