This is the mail archive of the
libc-alpha@sourceware.org
mailing list for the glibc project.
Re: Test cpow in all rounding modes
- From: Andreas Jaeger <aj at suse dot com>
- To: "Joseph S. Myers" <joseph at codesourcery dot com>, libc-alpha at sourceware dot org
- Date: Mon, 23 Jun 2014 20:23:56 +0200
- Subject: Re: Test cpow in all rounding modes
- Authentication-results: sourceware.org; auth=none
- References: <Pine dot LNX dot 4 dot 64 dot 1406102300510 dot 15277 at digraph dot polyomino dot org dot uk>
On 06/11/2014 01:01 AM, Joseph S. Myers wrote:
> 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.
Looks fine, thanks,
Andreas
--
Andreas Jaeger aj@{suse.com,opensuse.org} Twitter/Identica: jaegerandi
SUSE LINUX Products GmbH, Maxfeldstr. 5, 90409 Nürnberg, Germany
GF: Jeff Hawn,Jennifer Guild,Felix Imendörffer,HRB16746 (AG Nürnberg)
GPG fingerprint = 93A3 365E CE47 B889 DF7F FED1 389A 563C C272 A126