31#ifndef ETL_RMS_INCLUDED
32#define ETL_RMS_INCLUDED
48 template <
typename TInput,
typename TCalc>
57 template <
typename TCalc>
66 template <
typename TCalc>
69 typedef double calc_t;
76 template <
typename TInput,
typename TCalc = TInput>
83 typedef typename private_rms::rms_traits<TInput, TCalc>::calc_t calc_t;
99 template <
typename TIterator>
100 rms(TIterator first, TIterator last)
112 sum_of_squares += TCalc(value * value);
120 template <
typename TIterator>
121 void add(TIterator first, TIterator last)
123 while (first != last)
143 template <
typename TIterator>
160 double n = double(counter);
161 double mean_of_squares = sum_of_squares / n;
163 if (mean_of_squares > 0)
165 rms_value =
sqrt(mean_of_squares);
178 operator double()
const
188 return size_t(counter);
196 sum_of_squares = calc_t(0);
204 calc_t sum_of_squares;
206 mutable double rms_value;
207 mutable bool recalculate;
Standard Deviation.
Definition: rms.h:80
void add(TInput value)
Add a pair of values.
Definition: rms.h:110
void add(TIterator first, TIterator last)
Add a range.
Definition: rms.h:121
void operator()(TInput value)
Definition: rms.h:134
double get_rms() const
Get the rms.
Definition: rms.h:152
rms(TIterator first, TIterator last)
Constructor.
Definition: rms.h:100
void clear()
Clear the histogram.
Definition: rms.h:194
size_t count() const
Get the total number added entries.
Definition: rms.h:186
rms()
Constructor.
Definition: rms.h:90
bitset_ext
Definition: absolute.h:38
Definition: functional.h:125
Types for generic correlation.
Definition: rms.h:50
Calculates the smallest value that, when squared, will be not greater than VALUE.
Definition: sqrt.h:47