[Numpy-discussion] atol in allclose
robert.kern at gmail.com
Tue Nov 28 19:44:49 CST 2006
Matthew Brett wrote:
> Sorry to keep cluttering the list, but I was a bit surprised by this
> behavior of allclose:
> In :allclose([1.0], [1.0], rtol=0)
> In :allclose([1.0], [1.0], rtol=0, atol=0)
> The docstring seems to imply that atol will not be used in this
> comparison - or did I misunderstand?
The docstring is a somewhat loose interpretation of the actual implementation.
You've exposed a corner case. The long and the short of it is this:
d = less(absolute(x-y), atol + rtol * absolute(y))
rtol was never intended to be less than the epsilon of your chosen floating
point type much less 0. That's what == is for.
That said, less() should probably be less_equal(), and the docstring can be
clearly describe what is going on.
"I have come to believe that the whole world is an enigma, a harmless enigma
that is made terrible by our own mad attempt to interpret it as though it had
an underlying truth."
-- Umberto Eco
More information about the Numpy-discussion