Statistics
| Revision:

root / org.gvsig.toolbox / trunk / org.gvsig.toolbox / org.gvsig.toolbox.math / src / main / java / es / unex / sextante / math / simpleStats / SimpleStats.java @ 423

History | View | Annotate | Download (2.85 KB)

1
package es.unex.sextante.math.simpleStats;
2

    
3

    
4
/**
5
 * A class to calculate some basic statistics
6
 * 
7
 * @author volaya
8
 * 
9
 */
10
public class SimpleStats {
11

    
12
   //private final ArrayList m_Values;
13
   private double m_dSum;
14
   private double m_dRMS;
15
   private double m_dMean;
16
   private double m_dVariance;
17
   private double m_dMax, m_dMin;
18
   private double m_dStdDev;
19
   //private boolean   m_bCalculated;
20
   private int    m_iCount;
21
   private double m_dM2;
22

    
23

    
24
   public SimpleStats() {
25

    
26
      //m_Values = new ArrayList();
27
      //m_bCalculated = false;
28
      m_iCount = 0;
29
      m_dMax = Double.NEGATIVE_INFINITY;
30
      m_dMin = Double.MAX_VALUE;
31
      m_dSum = 0;
32
      m_dRMS = 0;
33
      m_dM2 = 0;
34

    
35
   }
36

    
37

    
38
   public void addValue() {
39
      m_iCount++;
40
   }
41
   
42
   /**
43
    * adds a new value to the list of values
44
    * 
45
    * @param dValue
46
    *                the value
47
    */
48
   public void addValue(final double dValue) {
49

    
50
      m_iCount++;
51

    
52
      final double dDelta = dValue - m_dMean;
53
      m_dMean = m_dMean + dDelta / m_iCount;
54
      m_dM2 = m_dM2 + dDelta * (dValue - m_dMean);
55
      m_dVariance = m_dM2 / (m_iCount - 1);
56

    
57
      m_dSum += dValue;
58
      m_dRMS += dValue * dValue;
59
      m_dMax = Math.max(m_dMax, dValue);
60
      m_dMin = Math.min(m_dMin, dValue);
61

    
62
      m_dStdDev = Math.sqrt(m_dVariance);
63
      m_dRMS = Math.sqrt(m_dRMS / m_iCount);
64

    
65
   }
66

    
67

    
68
   /**
69
    * Returns the coefficient of variation
70
    * 
71
    * @return the coefficient of variation
72
    */
73
   public double getCoeffOfVar() {
74

    
75
      return m_dVariance / m_dMean;
76

    
77
   }
78

    
79

    
80
   /**
81
    * Return the number of values added
82
    * 
83
    * @return the number of values added
84
    */
85
   public int getCount() {
86

    
87
      return m_iCount;
88

    
89
   }
90

    
91

    
92
   /**
93
    * Returns the maximum value
94
    * 
95
    * @return the maximum value
96
    */
97
   public double getMax() {
98

    
99
      return m_dMax;
100

    
101
   }
102

    
103

    
104
   /**
105
    * Returns the mean value
106
    * 
107
    * @return the mean value
108
    */
109
   public double getMean() {
110

    
111
      return m_dMean;
112

    
113
   }
114

    
115

    
116
   /**
117
    * Returns the minimum value
118
    * 
119
    * @return the minimum value
120
    */
121
   public double getMin() {
122

    
123
      return m_dMin;
124

    
125
   }
126

    
127

    
128
   /**
129
    * Returns the Root Mean Squared
130
    * 
131
    * @return the Root Mean Squared
132
    */
133
   public double getRMS() {
134

    
135
      return m_dRMS;
136

    
137
   }
138

    
139

    
140
   /**
141
    * Returns the standard deviation
142
    * 
143
    * @return the standard deviation
144
    */
145
   public double getStdDev() {
146

    
147
      return m_dStdDev;
148

    
149
   }
150

    
151

    
152
   /**
153
    * Returns the sum of all values
154
    * 
155
    * @return the sum of all values
156
    */
157
   public double getSum() {
158

    
159
      return m_dSum;
160

    
161
   }
162

    
163

    
164
   /**
165
    * Returns the variance
166
    * 
167
    * @return the variance
168
    */
169
   public double getVariance() {
170

    
171
      return m_dVariance;
172

    
173
   }
174

    
175
}