RIT VEXU Core API
Loading...
Searching...
No Matches
moving_average.h
1#pragma once
2#include <vector>
3
8class Filter {
9public:
10 virtual void add_entry(double n) = 0;
11 virtual double get_value() const = 0;
12};
13
28class MovingAverage : public Filter {
29public:
35 MovingAverage(int buffer_size);
41 MovingAverage(int buffer_size, double starting_value);
42
53 void add_entry(double n) override;
54
59 double get_value() const override;
60
65 int get_size() const;
66
67private:
68 int buffer_index; // index of the next value to be overridden
69 std::vector<double> buffer; // all current data readings we've taken
70 double current_avg; // the current value of the data
71};
72
88public:
94 ExponentialMovingAverage(int buffer_size);
100 ExponentialMovingAverage(int buffer_size, double starting_value);
101
112 void add_entry(double n) override;
113
118 double get_value() const override;
119
124 int get_size();
125
126private:
127 int buffer_index; // index of the next value to be overridden
128 std::vector<double> buffer; // all current data readings we've taken
129 double current_avg; // the current value of the data
130};
int get_size()
Definition moving_average.cpp:127
ExponentialMovingAverage(int buffer_size)
Definition moving_average.cpp:75
double get_value() const override
Definition moving_average.cpp:124
void add_entry(double n) override
Definition moving_average.cpp:102
Definition moving_average.h:8
int get_size() const
Definition moving_average.cpp:68
MovingAverage(int buffer_size)
Definition moving_average.cpp:25
double get_value() const override
Definition moving_average.cpp:65
void add_entry(double n) override
Definition moving_average.cpp:52