[Python-ideas] PEP 485: A Function for testing approximate equality

Chris Barker chris.barker at noaa.gov
Sat Jan 24 05:13:57 CET 2015

On Fri, Jan 23, 2015 at 6:35 PM, Andrew Barnert <abarnert at yahoo.com> wrote:

> Of course they can underflow. But I don't think that's a practical problem
> except in very rare cases. It means you're explicitly asking for better
> than +/- 2**min_exp, so it shouldn't be surprising that nothing but an
> exact match qualifies.
> Take a concrete example: with a tol of
> 1e-5, it's only going to underflow if expected is around 1e-320 or below.
> But since the next smaller and larger numbers (9.95e-321 and 1.0005e-320)
> aren't within 1e-5, the test gives the right answer despite underflowing.
> I'd have to think about it a bit to make sure there's no pathological case
> that doesn't work out that way--but really, if you're checking subnormal
> numbers for closeness with a general-purpose function, or checking for
> relative closeness pushing the bounds of 1 ulp without thinking about what
> that means, I suspect you're already doing something wrong at a much higher
> level.
> So, just special-casing 0 should be sufficient.

cool, this may be fine then. And makes a lot of sense.

Maybe the answer there is to have an is_close_to_0 function, instead of a
> parameter that's only useful if expected is 0? But then you might have,
> say, a comprehension where some of the expected values are 0 and some
> aren't, so maybe not...

exactly -- maybe it's because I'm so used to numpy, but expect that folks
would want to call this in a comprehension or something where you've got a
wide range of numbers, but want to use the same function and parameters,
and don't want it to blow up at zero.

I'll try adding this tomorrow, and see how it works out. with some tests,



Christopher Barker, Ph.D.

Emergency Response Division
NOAA/NOS/OR&R            (206) 526-6959   voice
7600 Sand Point Way NE   (206) 526-6329   fax
Seattle, WA  98115       (206) 526-6317   main reception

Chris.Barker at noaa.gov
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/python-ideas/attachments/20150123/5503aef3/attachment.html>

More information about the Python-ideas mailing list