sot-talos-balance  2.0.5
Collection of dynamic-graph entities aimed at implementing balance control on talos.
statistics.hh
Go to the documentation of this file.
1 //
2 // Copyright (c) 2017 CNRS
3 //
4 // This file is part of tsid
5 // tsid is free software: you can redistribute it
6 // and/or modify it under the terms of the GNU Lesser General Public
7 // License as published by the Free Software Foundation, either version
8 // 3 of the License, or (at your option) any later version.
9 // tsid is distributed in the hope that it will be
10 // useful, but WITHOUT ANY WARRANTY; without even the implied warranty
11 // of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 // General Lesser Public License for more details. You should have
13 // received a copy of the GNU Lesser General Public License along with
14 // tsid If not, see
15 // <http://www.gnu.org/licenses/>.
16 //
17 
18 #ifndef __invdyn_statistics_H__
19 #define __invdyn_statistics_H__
20 
21 #include <iostream>
22 #include <map>
23 #include <sstream>
24 
25 #define STATISTICS_MAX_NAME_LENGTH 60
26 
27 // Generic statistics exception class
29  public:
30  StatisticsException(std::string error) : error(error) {}
31  std::string error;
32 };
33 
66 class Statistics {
67  public:
69  Statistics();
70 
72  ~Statistics();
73 
75  bool quantity_exists(std::string name);
76 
78  void store(std::string name, const double& value);
79 
81  void reset(std::string name);
82 
84  void reset_all();
85 
87  void report(std::string name, int precision = 2,
88  std::ostream& output = std::cout);
89 
91  void report_all(int precision = 2, std::ostream& output = std::cout);
92 
94  long double get_total(std::string name);
95 
97  long double get_average(std::string name);
98 
100  long double get_min(std::string name);
101 
103  long double get_max(std::string name);
104 
106  long double get_last(std::string name);
107 
110  void turn_off();
111 
113  void turn_on();
114 
115  protected:
117  struct QuantityData {
118  QuantityData() : total(0), min(0), max(0), last(0), stops(0) {}
119 
121  long double total;
122 
124  long double min;
125 
127  long double max;
128 
130  long double last;
131 
133  int stops;
134  };
135 
137  bool active;
138 
141  std::map<std::string, QuantityData>* records_of;
142 };
143 
145 
146 #endif
Statistics::QuantityData::total
long double total
Definition: statistics.hh:121
Statistics::active
bool active
Definition: statistics.hh:137
Statistics::get_max
long double get_max(std::string name)
Definition: statistics.cpp:168
Statistics::records_of
std::map< std::string, QuantityData > * records_of
Definition: statistics.hh:141
Statistics::QuantityData::last
long double last
Definition: statistics.hh:130
Statistics::get_last
long double get_last(std::string name)
Definition: statistics.cpp:178
StatisticsException
Definition: statistics.hh:28
Statistics::get_min
long double get_min(std::string name)
Definition: statistics.cpp:158
Statistics::QuantityData::max
long double max
Definition: statistics.hh:127
Statistics::get_average
long double get_average(std::string name)
Definition: statistics.cpp:148
Statistics::QuantityData::stops
int stops
Definition: statistics.hh:133
Statistics::store
void store(std::string name, const double &value)
Definition: statistics.cpp:41
Statistics::report
void report(std::string name, int precision=2, std::ostream &output=std::cout)
Definition: statistics.cpp:109
Statistics
A class to compute statistics about quantities of interest.
Definition: statistics.hh:66
StatisticsException::error
std::string error
Definition: statistics.hh:31
Statistics::report_all
void report_all(int precision=2, std::ostream &output=std::cout)
Definition: statistics.cpp:72
Statistics::get_total
long double get_total(std::string name)
Definition: statistics.cpp:138
Statistics::turn_on
void turn_on()
Definition: statistics.cpp:99
sot_talos_balance.test.appli_admittance_end_effector.value
value
Definition: appli_admittance_end_effector.py:70
StatisticsException::StatisticsException
StatisticsException(std::string error)
Definition: statistics.hh:30
Statistics::quantity_exists
bool quantity_exists(std::string name)
Definition: statistics.cpp:37
Statistics::~Statistics
~Statistics()
Definition: statistics.cpp:35
getStatistics
Statistics & getStatistics()
Definition: statistics.cpp:26
Statistics::QuantityData::min
long double min
Definition: statistics.hh:124
Statistics::reset
void reset(std::string name)
Definition: statistics.cpp:83
Statistics::Statistics
Statistics()
Definition: statistics.cpp:31
Statistics::QuantityData::QuantityData
QuantityData()
Definition: statistics.hh:118
Statistics::reset_all
void reset_all()
Definition: statistics.cpp:62
sot_talos_balance.test.appli_dcm_zmp_control.name
name
Definition: appli_dcm_zmp_control.py:298
Statistics::QuantityData
Definition: statistics.hh:117
Statistics::turn_off
void turn_off()
Definition: statistics.cpp:104