This is the mail archive of the
libc-alpha@sourceware.org
mailing list for the glibc project.
Re: "1 + -1" when rounding to -inf
- From: David Miller <davem at davemloft dot net>
- To: schwab at linux-m68k dot org
- Cc: joseph at codesourcery dot com, libc-alpha at sourceware dot org
- Date: Mon, 21 Apr 2014 15:50:59 -0400 (EDT)
- Subject: Re: "1 + -1" when rounding to -inf
- Authentication-results: sourceware.org; auth=none
- References: <87ioq2trmo dot fsf at igel dot home> <20140421 dot 152406 dot 1095125135624062643 dot davem at davemloft dot net> <87eh0qtqvn dot fsf at igel dot home>
From: Andreas Schwab <schwab@linux-m68k.org>
Date: Mon, 21 Apr 2014 21:38:20 +0200
> David Miller <davem@davemloft.net> writes:
>
>> From: Andreas Schwab <schwab@linux-m68k.org>
>> Date: Mon, 21 Apr 2014 21:22:07 +0200
>>
>>> David Miller <davem@davemloft.net> writes:
>>>
>>>> I wrote a simple test program and, with FE_DOWNWARD, the sequence is:
>>>>
>>>> -1 + 1 == -0.0L
>>>>
>>>> -1L / -0.0L == INF
>>>
>>> Both are correct (the latter is independent of the rounding direction).
>>
>> The test case is expecting -INF.
>
> The log functions always return -inf for ±0, so does log1p(-1).
That's what I understood the expectation to be, and that's why I'm
showing how the exact operations above is the sequence of calculations
the long double log1p() implementation performs for an input of -1.