1
2
3
4
5
6
7
8
9
10 package org.eclipse.jgit.util;
11
12
13
14
15
16
17
18
19 public class Stats {
20 private int n = 0;
21
22 private double avg = 0.0;
23
24 private double min = 0.0;
25
26 private double max = 0.0;
27
28 private double sum = 0.0;
29
30
31
32
33
34
35
36 public void add(double x) {
37 n++;
38 min = n == 1 ? x : Math.min(min, x);
39 max = n == 1 ? x : Math.max(max, x);
40 double d = x - avg;
41 avg += d / n;
42 sum += d * d * (n - 1) / n;
43 }
44
45
46
47
48 public int count() {
49 return n;
50 }
51
52
53
54
55 public double min() {
56 if (n < 1) {
57 return Double.NaN;
58 }
59 return min;
60 }
61
62
63
64
65 public double max() {
66 if (n < 1) {
67 return Double.NaN;
68 }
69 return max;
70 }
71
72
73
74
75
76 public double avg() {
77 if (n < 1) {
78 return Double.NaN;
79 }
80 return avg;
81 }
82
83
84
85
86 public double var() {
87 if (n < 2) {
88 return Double.NaN;
89 }
90 return sum / (n - 1);
91 }
92
93
94
95
96 public double stddev() {
97 return Math.sqrt(this.var());
98 }
99 }