This is the mail archive of the
libc-alpha@sourceware.org
mailing list for the glibc project.
Re: Fix libm-test.inc:print_complex_max_error handling of some error cases
- From: Andreas Jaeger <aj at suse dot com>
- To: "Joseph S. Myers" <joseph at codesourcery dot com>, libc-alpha at sourceware dot org
- Date: Tue, 04 Mar 2014 09:59:02 +0100
- Subject: Re: Fix libm-test.inc:print_complex_max_error handling of some error cases
- Authentication-results: sourceware.org; auth=none
- References: <Pine dot LNX dot 4 dot 64 dot 1403040037480 dot 14805 at digraph dot polyomino dot org dot uk>
On 03/04/2014 01:39 AM, Joseph S. Myers wrote:
> When regenerating ulps incrementally with "make regen-ulps", the
> resulting diffs should only increase existing ulps, never decrease
> them. This allows successive uses of "make regen-ulps" on different
> hardware or with different compiler configurations to accumulate ulps
> that are sufficient for tests to pass in a variety of configurations.
>
> However, sometimes changes that decrease ulps are wrongly generated;
> thus, when applying
> <https://sourceware.org/ml/libc-alpha/2014-02/msg00605.html> I had to
> remove such changes manually. The problem is
> print_complex_max_error. If the ulps for either the real or the
> imaginary part of a function are out of range, this function prints
> the maximum ulps seen for both parts, which then replace those
> previously in libm-test-ulps. So if the ulps for one part are bigger
> than recorded before, but those for the other part are smaller, the
> diffs reduce existing ulps.
>
> This patch fixes the logic so that only increased ulps get printed.
>
> Tested x86_64 ("make math/tests", and "make regen-ulps" in a situation
> with ulps manually modified so one part would go up and the other
> down, to confirm the changes have the intended effect then).
>
> 2014-03-04 Joseph Myers <joseph@codesourcery.com>
>
> * math/libm-test.inc (print_complex_max_error): Check separately
> whether real and imaginary errors are within allowed range and
> pass 0 to print_complex_function_ulps instead of value within
> allowed range.
Ok, thanks,
Andreas
--
Andreas Jaeger aj@{suse.com,opensuse.org} Twitter: 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