5 void update_stats(struct stats
*stats
, u64 val
)
10 delta
= val
- stats
->mean
;
11 stats
->mean
+= delta
/ stats
->n
;
12 stats
->M2
+= delta
*(val
- stats
->mean
);
15 double avg_stats(struct stats
*stats
)
21 * http://en.wikipedia.org/wiki/Algorithms_for_calculating_variance
23 * (\Sum n_i^2) - ((\Sum n_i)^2)/n
24 * s^2 = -------------------------------
27 * http://en.wikipedia.org/wiki/Stddev
29 * The std dev of the mean is related to the std dev by:
36 double stddev_stats(struct stats
*stats
)
38 double variance
, variance_mean
;
43 variance
= stats
->M2
/ (stats
->n
- 1);
44 variance_mean
= variance
/ stats
->n
;
46 return sqrt(variance_mean
);
49 double rel_stddev_stats(double stddev
, double avg
)
54 pct
= 100.0 * stddev
/avg
;
This page took 0.03582 seconds and 5 git commands to generate.