[Numpy-discussion] Numpy float precision vs Python list float issue

David Cournapeau david@ar.media.kyoto-u.ac...
Mon Apr 20 09:48:23 CDT 2009


Rob Clewley wrote:
> David,
>
> I'm confused about your reply. I don't think Ruben was only asking why
> you'd ever get non-zero error after the forward and inverse transform,
> but why his implementation using lists gives zero error but using
> arrays he gets something of order 1e-15.
>   

That's more likely just an accident. Forward + inverse = id is the
surprising thing, actually. In any numerical package, if you do
ifft(fft(a)), you will not recover a exactly for any non trivial size.
For example, with floating point numbers, the order in which you do
operations matters, so:

a = 1e10
b = 1-20

c = a
c -= a + b

d = a
d -= a
d -= b

Will give you different values for d and c, even if you "on paper",
those are exactly the same. For those reasons, it is virtually
impossible to have exactly the same values for two different
implementations of the same algorithm. As long as the difference is
small (if the reconstruction error falls in the 1e-15 range, it is
mostly likely the case), it should not matter,

David


More information about the Numpy-discussion mailing list