Skyward boardcore
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Stats.h
Go to the documentation of this file.
1/* Copyright (c) 2015-2016 Skyward Experimental Rocketry
2 * Author: Federico Terraneo
3 *
4 * Permission is hereby granted, free of charge, to any person obtaining a copy
5 * of this software and associated documentation files (the "Software"), to deal
6 * in the Software without restriction, including without limitation the rights
7 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
8 * copies of the Software, and to permit persons to whom the Software is
9 * furnished to do so, subject to the following conditions:
10 *
11 * The above copyright notice and this permission notice shall be included in
12 * all copies or substantial portions of the Software.
13 *
14 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
15 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
16 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
17 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
18 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
19 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
20 * THE SOFTWARE.
21 */
22
23#pragma once
24
25#include <cstdint>
26#include <ostream>
27#include <reflect.hpp>
28
29namespace Boardcore
30{
31
36{
37 float minValue;
38 float maxValue;
39 float mean;
40 float stdDev;
41 uint32_t nSamples;
42
43 static constexpr auto reflect()
44 {
45 return STRUCT_DEF(StatsResult, FIELD_DEF(minValue) FIELD_DEF(maxValue)
46 FIELD_DEF(mean) FIELD_DEF(stdDev)
47 FIELD_DEF(nSamples));
48 }
49};
50
54std::ostream& operator<<(std::ostream& os, const StatsResult& sr);
55
61class Stats
62{
63public:
64 Stats();
65
66 void add(float data);
67
68 void reset();
69
73 StatsResult getStats() const;
74
75private:
76 float minValue, maxValue, mean, m2;
77 uint32_t n;
78};
79
80} // namespace Boardcore
Computes on-line statistics of a dataset.
Definition Stats.h:62
StatsResult getStats() const
Return statistics of the elements added so far.
Definition Stats.cpp:71
void add(float data)
Definition Stats.cpp:47
Driver for the VN100S IMU.
std::ostream & operator<<(std::ostream &o, const GammaConf &conf)
Definition GammaTypes.h:98
Statistics computed by the Stats class.
Definition Stats.h:36
float maxValue
Max value found so far.
Definition Stats.h:38
float stdDev
Standard deviation of dataset.
Definition Stats.h:40
static constexpr auto reflect()
Definition Stats.h:43
uint32_t nSamples
Number of samples.
Definition Stats.h:41
float mean
Mean of dataset.
Definition Stats.h:39
float minValue
Min value found so far.
Definition Stats.h:37