This is the mail archive of the
glibc-cvs@sourceware.org
mailing list for the glibc project.
GNU C Library master sources branch master updated. glibc-2.22-688-g2e3d0de
- From: jsm28 at sourceware dot org
- To: glibc-cvs at sourceware dot org
- Date: 19 Jan 2016 21:43:21 -0000
- Subject: GNU C Library master sources branch master updated. glibc-2.22-688-g2e3d0de
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 2e3d0de31f2020fbf358b932db18b8c44e2c92d0 (commit)
from df782dc690775d93b0cc1076655a9b92b5a44ad0 (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=2e3d0de31f2020fbf358b932db18b8c44e2c92d0
commit 2e3d0de31f2020fbf358b932db18b8c44e2c92d0
Author: Joseph Myers <joseph@codesourcery.com>
Date: Tue Jan 19 21:42:58 2016 +0000
Fix ulps regeneration for *-finite tests.
On running tests after from-scratch ulps regeneration, I found that
some libm tests failed with ulps in excess of those recorded in the
from-scratch regeneration, which should never happen unless those ulps
exceed the limit on ulps that can go in libm-test-ulps files.
Failure: Test: atan2_upward (inf, -inf)
Result:
is: 2.35619498e+00 0x1.2d97ccp+1
should be: 2.35619450e+00 0x1.2d97c8p+1
difference: 4.76837159e-07 0x1.000000p-21
ulp : 2.0000
max.ulp : 1.0000
Maximal error of `atan2_upward'
is : 2 ulp
accepted: 1 ulp
Failure: Test: carg_upward (-inf + inf i)
Result:
is: 2.35619498e+00 0x1.2d97ccp+1
should be: 2.35619450e+00 0x1.2d97c8p+1
difference: 4.76837159e-07 0x1.000000p-21
ulp : 2.0000
max.ulp : 1.0000
Maximal error of `carg_upward'
is : 2 ulp
accepted: 1 ulp
The problem comes from the addition of tests for the finite-math-only
versions of libm functions. Those tests share ulps with the default
function variants. make regen-ulps runs the default tests before the
finite-math-only tests, concatenating the resulting ulps before
feeding them to gen-libm-test.pl to generate a new libm-test-ulps
file. But gen-libm-test.pl always takes the last ulps value given for
any (function, type) pair. So, if the largest ulps for a function
come from non-finite inputs, a from-scratch regeneration loses those
ulps.
This patch fixes gen-libm-test.pl, in the case where there are
multiple ulps values for a (function, type) pair - which can only
happen as part of a regeneration - to take the largest ulps value
rather than the last one.
Tested for ARM / MIPS / powerpc-nofpu.
* math/gen-libm-test.pl (parse_ulps): Do not reduce
already-recorded ulps.
* sysdeps/arm/libm-test-ulps: Regenerated.
* sysdeps/mips/mips32/libm-test-ulps: Likewise.
* sysdeps/mips/mips64/libm-test-ulps: Likewise.
* sysdeps/powerpc/nofpu/libm-test-ulps: Likewise.
diff --git a/ChangeLog b/ChangeLog
index d3b180f..e5d46bc 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,12 @@
+2016-01-19 Joseph Myers <joseph@codesourcery.com>
+
+ * math/gen-libm-test.pl (parse_ulps): Do not reduce
+ already-recorded ulps.
+ * sysdeps/arm/libm-test-ulps: Regenerated.
+ * sysdeps/mips/mips32/libm-test-ulps: Likewise.
+ * sysdeps/mips/mips64/libm-test-ulps: Likewise.
+ * sysdeps/powerpc/nofpu/libm-test-ulps: Likewise.
+
2016-01-19 Andrew Senkevich <andrew.senkevich@intel.com>
Paul Pluzhnikov <ppluzhnikov@google.com>
diff --git a/math/gen-libm-test.pl b/math/gen-libm-test.pl
index eb1c299..17f17f7 100755
--- a/math/gen-libm-test.pl
+++ b/math/gen-libm-test.pl
@@ -583,8 +583,11 @@ sub parse_ulps {
# ignore
next;
} else {
- $results{$test}{$type}{'ulp'}{$float} = $eps;
- $results{$test}{'has_ulps'} = 1;
+ if (!defined ($results{$test}{$type}{'ulp'}{$float})
+ || $results{$test}{$type}{'ulp'}{$float} < $eps) {
+ $results{$test}{$type}{'ulp'}{$float} = $eps;
+ $results{$test}{'has_ulps'} = 1;
+ }
}
if ($type =~ /^real|imag$/) {
$results{$test}{'type'} = 'complex';
diff --git a/sysdeps/arm/libm-test-ulps b/sysdeps/arm/libm-test-ulps
index 219ba3c..aa3d696 100644
--- a/sysdeps/arm/libm-test-ulps
+++ b/sysdeps/arm/libm-test-ulps
@@ -115,7 +115,7 @@ ifloat: 2
Function: "atan2_upward":
double: 1
-float: 1
+float: 2
idouble: 1
ifloat: 2
@@ -291,7 +291,7 @@ ifloat: 2
Function: "carg_upward":
double: 1
-float: 1
+float: 2
idouble: 1
ifloat: 2
diff --git a/sysdeps/mips/mips32/libm-test-ulps b/sysdeps/mips/mips32/libm-test-ulps
index 219ba3c..aa3d696 100644
--- a/sysdeps/mips/mips32/libm-test-ulps
+++ b/sysdeps/mips/mips32/libm-test-ulps
@@ -115,7 +115,7 @@ ifloat: 2
Function: "atan2_upward":
double: 1
-float: 1
+float: 2
idouble: 1
ifloat: 2
@@ -291,7 +291,7 @@ ifloat: 2
Function: "carg_upward":
double: 1
-float: 1
+float: 2
idouble: 1
ifloat: 2
diff --git a/sysdeps/mips/mips64/libm-test-ulps b/sysdeps/mips/mips64/libm-test-ulps
index 0c2914c..5bf6f3e 100644
--- a/sysdeps/mips/mips64/libm-test-ulps
+++ b/sysdeps/mips/mips64/libm-test-ulps
@@ -155,7 +155,7 @@ ldouble: 3
Function: "atan2_upward":
double: 1
-float: 1
+float: 2
idouble: 1
ifloat: 2
ildouble: 2
@@ -393,7 +393,7 @@ ldouble: 3
Function: "carg_upward":
double: 1
-float: 1
+float: 2
idouble: 1
ifloat: 2
ildouble: 2
diff --git a/sysdeps/powerpc/nofpu/libm-test-ulps b/sysdeps/powerpc/nofpu/libm-test-ulps
index 0350eb9..4161342 100644
--- a/sysdeps/powerpc/nofpu/libm-test-ulps
+++ b/sysdeps/powerpc/nofpu/libm-test-ulps
@@ -155,7 +155,7 @@ ldouble: 6
Function: "atan2_upward":
double: 1
-float: 1
+float: 2
idouble: 1
ifloat: 2
ildouble: 3
@@ -393,7 +393,7 @@ ldouble: 6
Function: "carg_upward":
double: 1
-float: 1
+float: 2
idouble: 1
ifloat: 2
ildouble: 3
-----------------------------------------------------------------------
Summary of changes:
ChangeLog | 9 +++++++++
math/gen-libm-test.pl | 7 +++++--
sysdeps/arm/libm-test-ulps | 4 ++--
sysdeps/mips/mips32/libm-test-ulps | 4 ++--
sysdeps/mips/mips64/libm-test-ulps | 4 ++--
sysdeps/powerpc/nofpu/libm-test-ulps | 4 ++--
6 files changed, 22 insertions(+), 10 deletions(-)
hooks/post-receive
--
GNU C Library master sources