1 #ifndef NPSTAT_CROSSCOVARIANCEACCUMULATOR_HH_
2 #define NPSTAT_CROSSCOVARIANCEACCUMULATOR_HH_
16 #include "geners/ClassId.hh"
34 inline unsigned dim1()
const {
return dim1_;}
35 inline unsigned dim2()
const {
return dim2_;}
36 inline unsigned long count()
const {
return count_;}
37 inline const std::vector<long double>& sum1()
const {
return sum1_;}
38 inline const std::vector<long double>& sum2()
const {
return sum2_;}
39 inline const std::vector<long double>& sumsq1()
const {
return sum1_;}
40 inline const std::vector<long double>& sumsq2()
const {
return sum2_;}
41 long double sumsq(
unsigned i,
unsigned j)
const;
47 double mean2(
unsigned i)
const;
48 double stdev1(
unsigned i)
const;
49 double stdev2(
unsigned i)
const;
50 double meanUncertainty1(
unsigned i)
const;
51 double meanUncertainty2(
unsigned i)
const;
55 double cov(
unsigned i,
unsigned j)
const;
58 double corr(
unsigned i,
unsigned j)
const;
78 template<
typename T1,
typename T2>
80 const T2* data2,
unsigned len2);
83 template<
typename ArrayPair>
87 &pair.second[0], pair.second.size());
94 template<
typename ArrayPair>
111 {
return !(*
this == r);}
115 inline gs::ClassId
classId()
const {
return gs::ClassId(*
this);}
116 bool write(std::ostream& of)
const;
119 static inline const char* classname()
120 {
return "npstat::CrossCovarianceAccumulator";}
121 static inline unsigned version() {
return 1;}
129 unsigned long count_;
130 std::vector<long double> sum1_;
131 std::vector<long double> sum2_;
132 std::vector<long double> sumsq1_;
133 std::vector<long double> sumsq2_;
134 std::vector<long double> sumsq_;
138 #include "npstat/stat/CrossCovarianceAccumulator.icc"
Definition: CrossCovarianceAccumulator.hh:27
gs::ClassId classId() const
Definition: CrossCovarianceAccumulator.hh:115
void accumulate(const CrossCovarianceAccumulator &)
Matrix< double > crossCovMat() const
CrossCovarianceAccumulator(unsigned n1, unsigned n2)
double corr(unsigned i, unsigned j) const
unsigned dim1() const
Definition: CrossCovarianceAccumulator.hh:34
double mean1(unsigned i) const
CrossCovarianceAccumulator & operator+=(const CrossCovarianceAccumulator &r)
Definition: CrossCovarianceAccumulator.hh:99
void accumulate(const T1 *data1, unsigned len1, const T2 *data2, unsigned len2)
double cov(unsigned i, unsigned j) const
Matrix< double > crossCorrMat() const
CrossCovarianceAccumulator & operator+=(const ArrayPair &pair)
Definition: CrossCovarianceAccumulator.hh:95
bool operator==(const CrossCovarianceAccumulator &r) const
bool operator!=(const CrossCovarianceAccumulator &r) const
Definition: CrossCovarianceAccumulator.hh:110
void accumulate(const ArrayPair &pair)
Definition: CrossCovarianceAccumulator.hh:84
Definition: AbsArrayProjector.hh:14