[Numpy-discussion] Bug in logaddexp2.reduce

Charles R Harris charlesr.harris@gmail....
Thu Apr 1 09:16:06 CDT 2010


On Thu, Apr 1, 2010 at 3:52 AM, David Cournapeau <david@silveregg.co.jp>wrote:

> Anne Archibald wrote:
> > On 1 April 2010 03:15, David Cournapeau <david@silveregg.co.jp> wrote:
> >> Anne Archibald wrote:
> >>
> >>> Particularly given the comments in the boost source code, I'm leery of
> >>> this fix; who knows what an optimizing compiler will do with it?
> >> But the current code *is* wrong: it is not true that u == 1 implies u -
> >> 1 == 0 (and that (u-1) != 0 -> u != 1), because the spacing between two
> >> consecutive floats is much bigger at 1 than at 0. And the current code
> >> relies on this wrong assumption: at least with the correction, we test
> >> for what we care about.
> >
> > I don't think this is true for IEEE floats, at least in the case we're
> > interested in where u is approximately 1.
>
>
> Yes, sorry, you're right.
>
> For log1p, we can use the msun code, it is claimed to be such as the
> error is bounded by 1 ulp, does not rely on ASM, and we already have all
> the necessary macros in npymath so that the code should be easy to
> integrate for single and double precision. I don't see code for the long
> double version, though.
>
> We can use the boost test data to see if we get something sensible there .
>
>
I've had fixing these log_1p functions in the back of my mind since 1.3,
mostly because I didn't trust their accuracy. I'm inclined to go with one of
the series approaches, there are several out there. Note that the complex
versions need to be fixed also.

Chuck
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mail.scipy.org/pipermail/numpy-discussion/attachments/20100401/75d88da5/attachment-0001.html 


More information about the NumPy-Discussion mailing list