Plaquette
 
Loading...
Searching...
No Matches
MinMaxScaler.h
1/*
2 * MinMaxScaler.h
3 *
4 * (c) 2015 Sofian Audry :: info(@)sofianaudry(.)com
5 * (c) 2015 Thomas O Fredericks :: tof(@)t-o-f(.)info
6 *
7 * This program is free software: you can redistribute it and/or modify
8 * it under the terms of the GNU General Public License as published by
9 * the Free Software Foundation, either version 3 of the License, or
10 * (at your option) any later version.
11 *
12 * This program is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 * GNU General Public License for more details.
16 *
17 * You should have received a copy of the GNU General Public License
18 * along with this program. If not, see <http://www.gnu.org/licenses/>.
19 */
20
21#ifndef MIN_MAX_SCALER_H_
22#define MIN_MAX_SCALER_H_
23
24#include "PqCore.h"
25#include "MovingFilter.h"
26
27namespace pq {
28
30class MinMaxScaler : public MovingFilter {
31public:
37
44
45 virtual ~MinMaxScaler() {}
46
48 float minValue() const { return _smoothedMinValue; }
49
51 float maxValue() const { return _smoothedMaxValue; }
52
54 virtual void reset();
55
57 virtual void reset(float estimatedMeanValue);
58
60 virtual void reset(float estimatedMinValue, float estimatedMaxValue);
61
68 virtual float put(float value);
69
71 virtual float filter(float value);
72
73public:
74 virtual void step();
75
76 // Minimum value ever put (decays over time if time window is finite).
77 float _minValue;
78
79 // Maximum value ever put (decays over time if time window is finite).
80 float _maxValue;
81
82 // Smoothed minimum value.
83 float _smoothedMinValue;
84
85 // Smoothed minimum value.
86 float _smoothedMaxValue;
87
88private:
89 // Internal use: Helper functions used to compute alpha values.
90 float _alphaMinMax() const;
91 float _alphaSmoothed(bool finiteTimeWindow) const;
92 float _smoothedTimeWindow(bool finiteTimeWindow) const;
93};
94
95}
96
97#endif
The main Plaquette static class containing all the units.
Definition PqCore.h:63
static Engine & primary()
Returns the main instance of Plaquette.
Definition PqCore.cpp:30
Regularizes signal into [0,1] by rescaling it using the min and max values.
Definition MinMaxScaler.h:30
float maxValue() const
Returns the current max. value.
Definition MinMaxScaler.h:51
float minValue() const
Returns the current min. value.
Definition MinMaxScaler.h:48
virtual float put(float value)
Pushes value into the unit.
Definition MinMaxScaler.cpp:69
virtual float filter(float value)
Returns the filtered value (without calibrating).
Definition MinMaxScaler.cpp:90
virtual void reset()
Resets the moving filter.
Definition MinMaxScaler.cpp:41
Definition MovingFilter.h:39
virtual float timeWindow() const
Returns the time window (expressed in seconds).
Definition TimeWindowable.h:45
Engine * engine() const
Returns the engine that owns this unit.
Definition PqCore.h:420