Larus glider flight sensor system 3.9.2024
Software-In-The-Loop test and validation system
Loading...
Searching...
No Matches
mean_and_variance_finder.h
Go to the documentation of this file.
1#include "embedded_math.h"
2
3#ifndef GENERIC_ALGORITHMS_MEAN_AND_VARIANCE_FINDER_H_
4#define GENERIC_ALGORITHMS_MEAN_AND_VARIANCE_FINDER_H_
5
7template <class sample_data>class mean_and_variance_finder_t
8{
9public:
11 : sum(0),
12 square_sum(0),
13 samples(0)
14 {}
15 void reset( void)
16 {
17 sum = 0;
18 square_sum = 0;
19 samples = 0;
20 }
21 void feed( sample_data value)
22 {
23 sum += value;
24 square_sum += SQR( value);
25 ++samples;
26 }
27 unsigned get_samples( void ) const
28 {
29 return samples;
30 }
31 float get_mean( void) const
32 {
33 return sum / samples;
34 }
35 float get_variance( void) const
36 {
37 sample_data mean = sum / samples;
38 return square_sum / samples - mean * mean;
39 }
40
41private:
42 sample_data sum;
43 sample_data square_sum;
44 unsigned samples;
45};
46
47#endif /* GENERIC_ALGORITHMS_MEAN_AND_VARIANCE_FINDER_H_ */
generic statistics class for average and variance data
mathematical vector of arbitrary type and size
Definition vector.h:40
defines platform-dependent algorithms and constants
#define SQR(x)