[Python-ideas] Way to check for floating point "closeness"?
Guido van Rossum
guido at python.org
Mon Jan 12 23:33:59 CET 2015
I'm guessing this is also something that can go into math. (However, what
about complex?)
On Mon, Jan 12, 2015 at 2:23 PM, Chris Barker <chris.barker at noaa.gov> wrote:
> On Mon, Jan 12, 2015 at 12:04 PM, Guido van Rossum <guido at python.org>
> wrote:
>
>> So is 1e-100 close to 1e-50 with the default tolerance? What about 1e+100
>> and (1e+100 plus one ulp)?
>>
>
> sorry I should have not specified a specific default, and/or explained
> more what I think it should mean.
>
> But I thought the first question was "might this be a good idea for the
> standard library" -- and only if so, then we can work out how to do it.
>
> But anyway, the while point is that it would be some version "relative
> error", NOT an absolute tolerance -- that is pretty easy to write.
>
> See Nathaniel's note for the too many options already in numpy.
>
> Nathaniel Smith wrote:
>
> Unfortunately this opens a tremendous can of worms.
>
>
> Well, yes, but something generally useful for many cases would still be
> nice.
>
> Boost has thought about this a lot and advocates a slightly different
>> definition (actually, two slightly different definitions) from any of
>> the above:
>>
>> http://www.boost.org/doc/libs/1_34_0/libs/test/doc/components/test_tools/floating_point_comparison.html
>>
>
>
> It looks like they start with two, but end up with
>
> "the implementation is using modified version of the equations (1) and (2)
> where all underflow, overflow conditions could be guarded safely"
>
> That looks good to me, and the origins in Knuth are a good sign.
>
> -Chris
>
>
> --
>
> Christopher Barker, Ph.D.
> Oceanographer
>
> 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
>
--
--Guido van Rossum (python.org/~guido)
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/python-ideas/attachments/20150112/14768ece/attachment.html>
More information about the Python-ideas
mailing list