23 lines
427 B
Plaintext
23 lines
427 B
Plaintext
rocedure main()
|
|
|
|
stddev() # reset state / empty
|
|
every s := stddev(![2,4,4,4,5,5,7,9]) do
|
|
write("stddev (so far) := ",s)
|
|
|
|
end
|
|
|
|
procedure stddev(x) /: running standard deviation
|
|
static X,sumX,sum2X
|
|
|
|
if /x then { # reset state
|
|
X := []
|
|
sumX := sum2X := 0.
|
|
}
|
|
else { # accumulate
|
|
put(X,x)
|
|
sumX +:= x
|
|
sum2X +:= x^2
|
|
return sqrt( (sum2X / *X) - (sumX / *X)^2 )
|
|
}
|
|
end
|