31#ifndef ETL_VARIANCE_INCLUDED
32#define ETL_VARIANCE_INCLUDED
43 namespace private_variance
48 template <
typename TInput,
typename TCalc>
57 template <
typename TCalc>
66 template <
typename TCalc>
76 namespace private_variance
78 template<
typename T =
void>
81 static ETL_CONSTANT
bool Sample =
false;
82 static ETL_CONSTANT
bool Population =
true;
99 template <
bool Variance_Type,
typename TInput,
typename TCalc = TInput>
106 static ETL_CONSTANT
int Adjustment = (
Variance_Type == variance_type::Population) ? 0 : 1;
123 template <
typename TIterator>
135 sum_of_squares +=
TCalc(value * value);
144 template <
typename TIterator>
147 while (first != last)
167 template <
typename TIterator>
180 variance_value = 0.0;
195 return variance_value;
219 sum_of_squares =
calc_t(0);
222 variance_value = 0.0;
228 calc_t sum_of_squares;
231 mutable double variance_value;
232 mutable bool recalculate;
Variance.
Definition variance.h:103
size_t count() const
Get the total number added entries.
Definition variance.h:209
double get_variance() const
Get the variance.
Definition variance.h:176
variance(TIterator first, TIterator last)
Constructor.
Definition variance.h:124
void add(TInput value)
Add a pair of values.
Definition variance.h:133
void add(TIterator first, TIterator last)
Add a range.
Definition variance.h:145
void operator()(TInput value)
Definition variance.h:158
variance()
Constructor.
Definition variance.h:115
void clear()
Clear the variance.
Definition variance.h:217
bitset_ext
Definition absolute.h:38
Definition functional.h:126
pair holds two objects of arbitrary type
Definition utility.h:164
Types for generic variance.
Definition variance.h:50