[Numpy-discussion] Importance of order when summing values in anarray
Bruce Southey
bsouthey@gmail....
Tue Dec 9 09:46:03 CST 2008
Hanni Ali wrote:
> Hi Bruce,
>
> Ahh, but I would have thought the precision for the array operation
> would be the same no matter which values I wish to sum? The array is
> in float64 in all cases.
>
> I would not have thought altering the type of the integer values would
> make any difference as these indices are all below 5 milllion.
>
> Perhaps I have misunderstood your suggestion could you expand.
>
> Cheers,
>
> Hanni
>
>
> Also, increase the numerical precision as that may depend on your
> platform especially given the input values above are ints. Numpy has
> float128 and int64 that will minimize rounding error.
>
> Bruce
> _______________________________________________
> Numpy-discussion mailing list
> Numpy-discussion@scipy.org <mailto:Numpy-discussion@scipy.org>
> http://projects.scipy.org/mailman/listinfo/numpy-discussion
>
>
> ------------------------------------------------------------------------
>
> _______________________________________________
> Numpy-discussion mailing list
> Numpy-discussion@scipy.org
> http://projects.scipy.org/mailman/listinfo/numpy-discussion
>
Hi,
The main issue is the number of significant digits that you have which
is not the number of decimals in your case. So while the numerical
difference in the results is in the order about 1.86e-09, the actual
difference starts at the 15th significant place. This is expected due to
the number of significant digits of a 64-bit number (15-16). With higher
precision like float128 you should get about 34 significant digits
depending accuracy in all steps (i.e., the numbers must be stored as
float128 and the summations done in float128 precision).
Note there is a secondary issue of converting numbers between different
types as well as the binary representation of decimal numbers. Also,
rather than just simple summing, there are alternative algorithms like
Kahan summation algorithm that can minimize errors.
Bruce
More information about the Numpy-discussion
mailing list