@@ -41,6 +41,7 @@ update the internal **\_sum**.
4141- https://github.com/RobTillaart/RunningMedian
4242- https://github.com/RobTillaart/statHelpers - combinations & permutations
4343- https://github.com/RobTillaart/Statistic
44+ - https://github.com/RobTillaart/Student
4445
4546
4647## Interface
@@ -83,8 +84,14 @@ Updates the variables used by **getFastAverage()** to improve its accuracy again
8384- ** float getStandardDeviation()** returns the standard deviation of the current content.
8485Needs more than one element to be calculable.
8586- ** float getStandardError()** returns the standard error of the current content.
86- - ** float getMin()** returns minimum since last clear, does not need to be in the buffer any more.
87- - ** float getMax()** returns maximum since last clear, does not need to be in the buffer any more.
87+ - ** float getCoefficientOfVariation()** returns coefficient of variation.
88+ This is defined as standardDeviation / Average.
89+ It indicates if the distribution is relative small ( < 1) or relative wide ( > 1).
90+ Note it has no meaning when the average is zero (or close to zero).
91+ - ** float getMin()** returns minimum since last call to clear().
92+ The returned value does not need to be in the buffer any more.
93+ - ** float getMax()** returns maximum since last call to clear().
94+ The returned value does not need to be in the buffer any more.
8895- ** float getMinInBuffer()** returns minimum in the internal buffer.
8996- ** float getMaxInBuffer()** returns maximum in the internal buffer.
9097- ** float getSum()** returns sum of values in the internal buffer.
@@ -94,7 +101,7 @@ Needs more than one element to be calculable.
94101
95102- ** bool bufferIsFull()** returns true if buffer is full.
96103- ** float getElement(uint16_t index)** get element directly from internal buffer at index. (debug)
97- - ** uint16_t getSize()** returns the size of the internal array.
104+ - ** uint16_t getSize()** returns the size of the internal array as set in constructor .
98105- ** uint16_t getCount()** returns the number of slots used of the internal array.
99106
100107
@@ -114,6 +121,7 @@ Returns NAN if there are no elements and it will reduce count if there are less
114121count elements in the buffer.
115122
116123- ** float getAverageLast(uint16_t count)** get the average of the last count elements.
124+ - ** float getStandardDeviationLast(uint16_t count)** get the stddev of the last count elements.
117125- ** float getMinInBufferLast(uint16_t count)** get the minimum of the last count elements.
118126- ** float getMaxInBufferLast(uint16_t count)** get the maximum of the last count elements.
119127
@@ -174,22 +182,14 @@ See examples
174182#### Should
175183
176184- check for optimizations.
177- - divide by count happens often
178- - fillValue can be optimized (See #13 )
179- - ``` temp = sqrt(temp/(_count - 1)); ``` is this correct STDDEV?
180- - divide by count or count - 1?
181- - https://www.zaner.com/3.0/education/technicalstudies/MSD.asp
182-
185+ - divide by count (-1) happens often.
186+ - fillValue can be optimized (See #13 ).
187+
183188#### Could
184189
185190- create a double based derived class?
186191 - Template class?
187192- add error handling (important?).
188- - investigate ** modus()** most frequently occurring value.
189- - difficult with floats ?
190- - what to do when on two or more values are on par? (no modus?)
191- - ** int getUniqueValuesInBuffer()** O(n^2)
192-
193193
194194#### Wont
195195
@@ -198,6 +198,10 @@ See examples
198198- clear(bool zero = true) to suppress setting all to 0. ?
199199 - makes ** addValue()** slightly more complex
200200 - could introduce conflicts due to randomness data?
201+ - investigate ** modus()** most frequently occurring value.
202+ - difficult with floats ?
203+ - what to do when on two or more values are on par? (no modus?)
204+ - ** int getUniqueValuesInBuffer()** O(n^2).
201205
202206
203207## Support
0 commit comments