Floating point multiplication in python

Terry Reedy tjreedy at udel.edu
Wed Sep 7 11:37:32 CEST 2011


On 9/7/2011 12:51 AM, Steven D'Aprano wrote:

> So given a float x, when you square it you get this:
>
> Exact values: a*a = a**2
>
> Float values: x*x = (a+e)(a+e)
>                    = a**2 + 2*a*e + e**2
>
> So the error term has increased from e to (2*a*e+e**2). It is usual to
> assume that e**2 is small enough that it underflows to zero, so we have the
> error term e increasing to 2*a*e as a fairly simple estimate of the new
> error.

And the relative error, which is what is often important, increases from 
e/a to 2e/a.

-- 
Terry Jan Reedy




More information about the Python-list mailing list