31#ifndef ETL_COVARIANCE_INCLUDED
32#define ETL_COVARIANCE_INCLUDED
43 namespace private_covariance
48 template <
typename TInput,
typename TCalc>
57 template <
typename TCalc>
66 template <
typename TCalc>
76 namespace private_covariance
78 template<
typename T =
void>
81 static ETL_CONSTANT
bool Sample =
false;
82 static ETL_CONSTANT
bool Population =
true;
99 template <
bool Covariance_Type,
typename TInput,
typename TCalc = TInput>
106 static ETL_CONSTANT
int Adjustment = (
Covariance_Type == covariance_type::Population) ? 0 : 1;
123 template <
typename TIterator>
135 inner_product +=
TCalc(value1 * value2);
136 sum1 +=
TCalc(value1);
137 sum2 +=
TCalc(value2);
145 template <
typename TIterator>
169 template <
typename TIterator>
182 covariance_value = 0.0;
189 covariance_value = ((
n * inner_product) - (sum1 * sum2)) *
adjustment;
195 return covariance_value;
219 inner_product =
calc_t(0);
223 covariance_value = 0.0;
229 calc_t inner_product;
233 mutable double covariance_value;
234 mutable bool recalculate;
237 template <
bool Covariance_Type,
typename TInput,
typename TCalc>
238 ETL_CONSTANT
int covariance<Covariance_Type, TInput, TCalc>::Adjustment;
Covariance.
Definition covariance.h:103
void clear()
Clear the covariance.
Definition covariance.h:217
double get_covariance() const
Get the covariance.
Definition covariance.h:178
size_t count() const
Get the total number added entries.
Definition covariance.h:209
covariance()
Constructor.
Definition covariance.h:115
covariance(TIterator first1, TIterator last1, TIterator first2)
Constructor.
Definition covariance.h:124
void add(TIterator first1, TIterator last1, TIterator first2)
Add a range.
Definition covariance.h:146
void operator()(TInput value1, TInput value2)
Definition covariance.h:160
void add(TInput value1, TInput value2)
Add a pair of values.
Definition covariance.h:133
bitset_ext
Definition absolute.h:38
Definition functional.h:125
Definition covariance.h:93
pair holds two objects of arbitrary type
Definition utility.h:164
Types for generic covariance.
Definition covariance.h:50
Definition covariance.h:80