
On Jan 23, 2015, at 18:41, Chris Angelico <rosuav@gmail.com> wrote:
On Sat, Jan 24, 2015 at 1:35 PM, Andrew Barnert <abarnert@yahoo.com.dmarc.invalid> wrote:
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...
That's a more philosophical question about API design. It's probably worth mentioning the two options in the PEP - separate function for "close to zero" with these args, or put it all into the one function with those args.
Sure. And obviously the PEP has to pick one of the options and make the case for it. I just wanted to make it clear that (I'm pretty sure) it really is only 0 that's special here, not "any subnormal" or "small numbers in some vague sense" or anything like that. The problem is that nothing is within even a ridiculously huge relative tolerance of 0 except 0; plenty of things (or at least as many values as you have reason to expect) are within a reasonable tolerance of a nonzero subnormal. (Also, this is just about zero_tol, not about the wider abs-and-rel issue, which I have nothing to add to.)