summaryrefslogtreecommitdiff
path: root/math/auto-libm-test-in
diff options
context:
space:
mode:
authorJoseph Myers <joseph@codesourcery.com>2014-06-23 20:15:14 +0000
committerJoseph Myers <joseph@codesourcery.com>2014-06-23 20:15:14 +0000
commit863893ec95f316a3d156d487b99242ee1b52f803 (patch)
tree88b7b115fcd0036af09a8089645db9e9cc221f7a /math/auto-libm-test-in
parent4da6db51880289f0bf41b39e05cf9bb1c4769c47 (diff)
downloadglibc-863893ec95f316a3d156d487b99242ee1b52f803.tar.gz
Test cpow in all rounding modes.
This patch enables testing of cpow in all rounding modes using ALL_RM_TEST. There were two reasons this was previously deferred: * MPC has complicated rounding-mode-dependent rules for the signs of exact zero real or imaginary parts in the result of mpc_pow. Annex G does not impose any such requirements and I don't think glibc should try to implement any particular logic here. This patch adds support for gen-auto-libm-tests passing the IGNORE_ZERO_INF_SIGN flag to libm-test.inc. * Error accumulations in some tests in non-default rounding modes exceed the maximum error permitted in libm-test.inc. This patch marks the problem tests with xfail-rounding. (It might be possible to reduce the accumulations a bit by using round-to-nearest when cpow calls clog, but I don't think there's much point; the implementation approach for cpow is fundamentally deficient, as discussed in the existing bug for cpow inaccuracy which can reasonably be considered to cover these less-inaccurate cases as well. It's possible that the test "cpow 2 0 10 0" will also need xfail-rounding on some platforms.) Tested x86_64 and x86 and ulps updated accordingly. * math/gen-auto-libm-tests.c: Document use of ignore-zero-inf-sign. (input_flag_type): Add value flag_ignore_zero_inf_sign. (input_flags): Add ignore-zero-inf-sign. (output_for_one_input_case): Handle flag_ignore_zero_inf_sign. * math/gen-libm-test.pl (generate_testfile): Handle ignore-zero-inf-sign. * math/auto-libm-test-in: Mark some cpow tests with ignore-zero-inf-sign and some with xfail-rounding. * math/auto-libm-test-out: Regenerated. * math/libm-test.inc (cpow_test): Use ALL_RM_TEST. * sysdeps/i386/fpu/libm-test-ulps: Update. * sysdeps/x86_64/fpu/libm-test-ulps: Likewise.
Diffstat (limited to 'math/auto-libm-test-in')
-rw-r--r--math/auto-libm-test-in10
1 files changed, 5 insertions, 5 deletions
diff --git a/math/auto-libm-test-in b/math/auto-libm-test-in
index 0053340e18..673a4446a2 100644
--- a/math/auto-libm-test-in
+++ b/math/auto-libm-test-in
@@ -652,14 +652,14 @@ cosh 0x2.c5d37700c6bb03a6c24b6c9b494ep+12 no-test-inline xfail-rounding:ldbl-128
cosh -0x2.c5d37700c6bb03a6c24b6c9b494cp+12 no-test-inline xfail-rounding:ldbl-128ibm
cosh -0x2.c5d37700c6bb03a6c24b6c9b494ep+12 no-test-inline xfail-rounding:ldbl-128ibm
-cpow 1 0 0 0
-cpow 2 0 10 0
+cpow 1 0 0 0 ignore-zero-inf-sign
+cpow 2 0 10 0 ignore-zero-inf-sign
# Bug 14473: cpow results inaccurate.
cpow e 0 0 2pi xfail
-cpow 2 3 4 0
+cpow 2 3 4 0 xfail-rounding
-cpow 0.75 1.25 0.75 1.25
-cpow 0.75 1.25 1.0 1.0
+cpow 0.75 1.25 0.75 1.25 xfail-rounding
+cpow 0.75 1.25 1.0 1.0 xfail-rounding
cpow 0.75 1.25 1.0 0.0
cpow 0.75 1.25 0.0 1.0