Data update
This commit is contained in:
parent
4bb20c9b71
commit
cbaf4c4b64
12390 changed files with 318560 additions and 27248 deletions
|
|
@ -0,0 +1,70 @@
|
|||
MODULE CumulDev;
|
||||
(* Cumulative standard deviation *)
|
||||
FROM RealMath IMPORT
|
||||
sqrt;
|
||||
FROM SRealIO IMPORT
|
||||
WriteFixed;
|
||||
FROM STextIO IMPORT
|
||||
WriteLn, WriteString;
|
||||
FROM SWholeIO IMPORT
|
||||
WriteInt;
|
||||
|
||||
TYPE
|
||||
TSample = RECORD
|
||||
N: CARDINAL;
|
||||
Sum: REAL;
|
||||
SumOfSquares: REAL
|
||||
END;
|
||||
|
||||
TData = ARRAY [1 .. 8] OF REAL;
|
||||
|
||||
VAR
|
||||
Test: TData;
|
||||
S: TSample;
|
||||
I: CARDINAL;
|
||||
|
||||
PROCEDURE Init(VAR OUT S: TSample);
|
||||
BEGIN
|
||||
WITH S DO
|
||||
N := 0;
|
||||
Sum := 0.0;
|
||||
SumOfSquares := 0.0
|
||||
END;
|
||||
END Init;
|
||||
|
||||
PROCEDURE Add(VAR INOUT S: TSample; P: REAL);
|
||||
BEGIN
|
||||
WITH S DO
|
||||
N := N + 1;
|
||||
Sum := Sum + P;
|
||||
SumOfSquares := SumOfSquares + P * P
|
||||
END
|
||||
END Add;
|
||||
|
||||
PROCEDURE Deviation (S: TSample): REAL;
|
||||
VAR
|
||||
Quot: REAL;
|
||||
BEGIN
|
||||
WITH S DO
|
||||
Quot := Sum / FLOAT(N);
|
||||
RETURN sqrt(SumOfSquares / FLOAT(N) - Quot * Quot)
|
||||
END;
|
||||
END Deviation;
|
||||
|
||||
BEGIN
|
||||
Test := TData{2.0, 4.0, 4.0, 4.0, 5.0, 5.0, 7.0, 9.0};
|
||||
Init(S);
|
||||
WriteString("N ITEM AVG STDDEV");
|
||||
WriteLn;
|
||||
FOR I := 1 TO HIGH(Test) DO
|
||||
Add(S, Test[I]);
|
||||
WriteInt(I, 1);
|
||||
WriteString(" ");
|
||||
WriteFixed(Test[I], 1, 3);
|
||||
WriteString(" ");
|
||||
WriteFixed(S.Sum / FLOAT(I), 3, 5);
|
||||
WriteString(" ");
|
||||
WriteFixed(Deviation(S), 3, 5);
|
||||
WriteLn
|
||||
END;
|
||||
END CumulDev.
|
||||
Loading…
Add table
Add a link
Reference in a new issue