Cumulative standard deviation: Difference between revisions

Content added Content deleted
Line 56: Line 56:
MODE ACTION = UNION ( VALUE, STDDEV, MEAN, VAR, COUNT, RESET );
MODE ACTION = UNION ( VALUE, STDDEV, MEAN, VAR, COUNT, RESET );


LONG REAL sum := 0.0;
LONG REAL sum := 0;
LONG REAL sum2 := 0.0;
LONG REAL sum2 := 0;
INT num := 0;
INT num := 0;


Line 70: Line 70:
sum +:= v;
sum +:= v;
sum2 +:= v*v;
sum2 +:= v*v;
stat object(0.0, LOC STDDEV)
stat object(0, LOC STDDEV)
),
),
(STDDEV):
(STDDEV):
long sqrt(stat object(0.0, LOC VAR)),
long sqrt(stat object(0, LOC VAR)),
(MEAN):
(MEAN):
IF (num>0) THEN sum/LONG REAL(num) ELSE 0.0 FI,
IF num>0 THEN sum/LONG REAL(num) ELSE 0 FI,
(VAR):(
(VAR):(
m := stat object(0.0, LOC MEAN);
m := stat object(0, LOC MEAN);
IF (num>0) THEN sum2/LONG REAL(num) - m*m ELSE 0.0 FI
IF num>0 THEN sum2/LONG REAL(num)-m*m ELSE 0 FI
),
),
(COUNT):
(COUNT):
num,
num,
(RESET):(
(RESET):
sum := sum2 := 0.0; num := 0;
sum := sum2 := num := 0
0.0
)
ESAC
ESAC
);
);