Big float Round off errors



Thanks for this reference; some readers might enjoy the experiment:

 (%i33) fpprec : 20$
 (%i34) l : makelist((-75)^k/k!,k,0,500)$

 (%i35) bfloat(tree_reduce("+", map(lambda([s],
 rationalize(bfloat(s))),l)));
 (%o35) -5.3399030854116552833b10

 (%i36) bfloat(tree_reduce("+", l));
 (%o36) 2.6786369618080779443b-33

The reason (%o35) and (%o36) aren't close isn't subtractive
cancellation--the sum was done using rational arithmetic. The
problem is that the sum is ill-conditioned.

Barton

-----maxima-bounces at math.utexas.edu wrote: -----


>There is a brief summary of some of the many proposed ways of accurate
>summation here:
>
>http://hpcrd.lbl.gov/SCG/ocean/NRS/ECMWF/img11.htm
>