Ignition Math

API Reference

6.4.0
SignalStats.hh
Go to the documentation of this file.
1 /*
2  * Copyright (C) 2015 Open Source Robotics Foundation
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  * http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  *
16 */
17 #ifndef IGNITION_MATH_SIGNALSTATS_HH_
18 #define IGNITION_MATH_SIGNALSTATS_HH_
19 
20 #include <map>
21 #include <memory>
22 #include <string>
23 #include <ignition/math/Helpers.hh>
24 #include <ignition/math/config.hh>
25 
26 namespace ignition
27 {
28  namespace math
29  {
30  // Inline bracket to help doxygen filtering.
31  inline namespace IGNITION_MATH_VERSION_NAMESPACE {
32  //
34  class SignalStatisticPrivate;
35 
38  class IGNITION_MATH_VISIBLE SignalStatistic
39  {
41  public: SignalStatistic();
42 
44  public: virtual ~SignalStatistic();
45 
48  public: SignalStatistic(const SignalStatistic &_ss);
49 
52  public: virtual double Value() const = 0;
53 
56  public: virtual std::string ShortName() const = 0;
57 
60  public: virtual size_t Count() const;
61 
64  public: virtual void InsertData(const double _data) = 0;
65 
67  public: virtual void Reset();
68 
69 #ifdef _WIN32
70 // Disable warning C4251 which is triggered by
71 // std::unique_ptr
72 #pragma warning(push)
73 #pragma warning(disable: 4251)
74 #endif
75  protected: std::unique_ptr<SignalStatisticPrivate> dataPtr;
77 #ifdef _WIN32
78 #pragma warning(pop)
79 #endif
80  };
82 
85  class IGNITION_MATH_VISIBLE SignalMaximum : public SignalStatistic
86  {
87  // Documentation inherited.
88  public: virtual double Value() const override;
89 
92  public: virtual std::string ShortName() const override;
93 
94  // Documentation inherited.
95  public: virtual void InsertData(const double _data) override;
96  };
98 
101  class IGNITION_MATH_VISIBLE SignalMean : public SignalStatistic
102  {
103  // Documentation inherited.
104  public: virtual double Value() const override;
105 
108  public: virtual std::string ShortName() const override;
109 
110  // Documentation inherited.
111  public: virtual void InsertData(const double _data) override;
112  };
114 
117  class IGNITION_MATH_VISIBLE SignalMinimum : public SignalStatistic
118  {
119  // Documentation inherited.
120  public: virtual double Value() const override;
121 
124  public: virtual std::string ShortName() const override;
125 
126  // Documentation inherited.
127  public: virtual void InsertData(const double _data) override;
128  };
130 
134  class IGNITION_MATH_VISIBLE SignalRootMeanSquare : public SignalStatistic
135  {
136  // Documentation inherited.
137  public: virtual double Value() const override;
138 
141  public: virtual std::string ShortName() const override;
142 
143  // Documentation inherited.
144  public: virtual void InsertData(const double _data) override;
145  };
147 
153  class IGNITION_MATH_VISIBLE SignalMaxAbsoluteValue : public SignalStatistic
154  {
155  // Documentation inherited.
156  public: virtual double Value() const override;
157 
160  public: virtual std::string ShortName() const override;
161 
162  // Documentation inherited.
163  public: virtual void InsertData(const double _data) override;
164  };
166 
170  class IGNITION_MATH_VISIBLE SignalVariance : public SignalStatistic
171  {
172  // Documentation inherited.
173  public: virtual double Value() const override;
174 
177  public: virtual std::string ShortName() const override;
178 
179  // Documentation inherited.
180  public: virtual void InsertData(const double _data) override;
181  };
183 
185  class SignalStatsPrivate;
186 
189  class IGNITION_MATH_VISIBLE SignalStats
190  {
192  public: SignalStats();
193 
195  public: ~SignalStats();
196 
199  public: SignalStats(const SignalStats &_ss);
200 
206  public: size_t Count() const;
207 
212  public: std::map<std::string, double> Map() const;
213 
216  public: void InsertData(const double _data);
217 
227  public: bool InsertStatistic(const std::string &_name);
228 
236  public: bool InsertStatistics(const std::string &_names);
237 
239  public: void Reset();
240 
244  public: SignalStats &operator=(const SignalStats &_s);
245 
246 #ifdef _WIN32
247 // Disable warning C4251 which is triggered by
248 // std::unique_ptr
249 #pragma warning(push)
250 #pragma warning(disable: 4251)
251 #endif
252  private: std::unique_ptr<SignalStatsPrivate> dataPtr;
254 #ifdef _WIN32
255 #pragma warning(pop)
256 #endif
257  };
258  }
260  }
261 }
262 #endif
263 
Statistical properties of a discrete time scalar signal.
Definition: SignalStats.hh:38
Computing the incremental variance of a discretely sampled signal.
Definition: SignalStats.hh:170
Computing the minimum value of a discretely sampled signal.
Definition: SignalStats.hh:117
Computing the maximum of the absolute value of a discretely sampled signal. Also known as the maximum...
Definition: SignalStats.hh:153
Computing the maximum value of a discretely sampled signal.
Definition: SignalStats.hh:85
Computing the mean value of a discretely sampled signal.
Definition: SignalStats.hh:101
STL class.
STL class.
Collection of statistics for a scalar signal.
Definition: SignalStats.hh:189
Computing the square root of the mean squared value of a discretely sampled signal.
Definition: SignalStats.hh:134
Definition: Angle.hh:42