aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoseph Myers <joseph@codesourcery.com>2015-10-23 22:54:36 +0000
committerJoseph Myers <joseph@codesourcery.com>2015-10-23 22:54:36 +0000
commit6d834d2216bcc733fa04c5a59b5ac6f6f1134f2b (patch)
tree86ba3f0e9f8f211f431fa81ace778c4b50514c97
parent9d1687b2dfc2da2d837168c7857c1271ed3d3d6e (diff)
downloadglibc-6d834d2216bcc733fa04c5a59b5ac6f6f1134f2b.zip
glibc-6d834d2216bcc733fa04c5a59b5ac6f6f1134f2b.tar.gz
glibc-6d834d2216bcc733fa04c5a59b5ac6f6f1134f2b.tar.bz2
Remove libm-test.inc special-casing of errors up to 0.5 ulp.
libm-test.inc has special-case code treating errors of up to 0.5 ulp as allowed (for functions that aren't exactly determined) even if no such errors appeared in libm-test-ulps. This only applies to avoid errors for individual function calls, not for the overall check of ulps at the end of testing a function, resulting in confusing output of the form: testing double (without inline functions) Maximal error of `log_upward' is : 1 ulp accepted: 0 ulp with no report of what testcase produced that error. This patch removes the special case, so that instead you get: testing double (without inline functions) Failure: Test: log_upward (0x1.0000000000001p+0) Result: is: 2.2204460492503129e-16 0x1.fffffffffffffp-53 should be: 2.2204460492503131e-16 0x1.0000000000000p-52 difference: 2.4651903288156619e-32 0x1.0000000000000p-105 ulp : 0.5000 max.ulp : 0.0000 Maximal error of `log_upward' is : 1 ulp accepted: 0 ulp (for formats other than ldbl-128ibm, 0.5 ulp errors only occur in unusual cases such as this where the correctly rounded result is a power of 2 and the computed result is just below it). This should not affect which cases result in the test failing, just ensure that if it fails then some failure for an individual function call was reported. Tested for x86_64 and x86. * math/libm-test.inc (check_float_internal): Do not special-case errors up to 0.5 ulp.
-rw-r--r--ChangeLog3
-rw-r--r--math/libm-test.inc3
2 files changed, 4 insertions, 2 deletions
diff --git a/ChangeLog b/ChangeLog
index 8a51ab1..041a6eb 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,8 @@
2015-10-23 Joseph Myers <joseph@codesourcery.com>
+ * math/libm-test.inc (check_float_internal): Do not special-case
+ errors up to 0.5 ulp.
+
* math/auto-libm-test-in: Add more tests of log, log10, log1p and
log2.
* math/auto-libm-test-out: Regenerated.
diff --git a/math/libm-test.inc b/math/libm-test.inc
index 989d6ae..239587d 100644
--- a/math/libm-test.inc
+++ b/math/libm-test.inc
@@ -834,8 +834,7 @@ check_float_internal (const char *test_name, FLOAT computed, FLOAT expected,
&& computed == 0.0 && expected == 0.0
&& signbit(computed) != signbit (expected))
ok = 0;
- else if ((ulps <= 0.5 && ulps <= max_valid_error)
- || (ulps <= max_ulp && !ignore_max_ulp))
+ else if (ulps <= max_ulp && !ignore_max_ulp)
ok = 1;
else
ok = 0;