[Python-Dev] Accumulation module

Christian Tismer tismer at stackless.com
Thu Feb 26 13:40:08 EST 2004


Tony Vignaux wrote:

> Raymond,
> 
> You asked:
> 
>> * Is there a way to compute the standard deviation without multiple
>> passes over the data (one to compute the mean and a second to sum the
>> squares of the differences from the mean?
>>
>>
> 
> I do not understand the problem in getting stdev in a single pass. 
> Perhaps I not understood your problem. If you have a series of values 
> you merely have to calculate their sum and sum-of-squares and use the 
> usual formula.

True, if you can use exact numbers.
When calculating with floats (also named real, because they
are everything else but real), you unfortunately calculate
two things at the same time: Your intended calculation,
plus some propagating error. The trick is to keep the error
propagation as small as possible, while keeping the algorithm
readable and effective.
To my knowledge, always adding the smallest values first is
best possible for minimizing cutoff/rounding, although it
involes sorting.
Using pairwise addition of values might be a good compromize,
but I neither know state of the art nor did I follw the thread.

> Ignore this if this is dumb.

reals are dumb.  ciao - chris
-- 
Christian Tismer             :^)   <mailto:tismer at stackless.com>
Mission Impossible 5oftware  :     Have a break! Take a ride on Python's
Johannes-Niemeyer-Weg 9a     :    *Starship* http://starship.python.net/
14109 Berlin                 :     PGP key -> http://wwwkeys.pgp.net/
work +49 30 89 09 53 34  home +49 30 802 86 56  mobile +49 173 24 18 776
PGP 0x57F3BF04       9064 F4E1 D754 C2FF 1619  305B C09C 5A3B 57F3 BF04
      whom do you want to sponsor today?   http://www.stackless.com/




More information about the Python-Dev mailing list