Electroneum
stats.h
Go to the documentation of this file.
1 #pragma once
2 
3 #include <vector>
4 
5 template<typename T, typename Tpod = T>
6 class Stats
7 {
8 public:
9  Stats(const std::vector<T> &v): values(v), cached(0) {}
10  ~Stats() {}
11 
12  size_t get_size() const;
13  Tpod get_min() const;
14  Tpod get_max() const;
15  Tpod get_median() const;
16  double get_mean() const;
17  double get_confidence_interval_95() const;
18  double get_confidence_interval_99() const;
19  double get_standard_deviation() const;
20  double get_standard_error() const;
21  double get_variance() const;
22  double get_kurtosis() const;
23  double get_non_parametric_skew() const;
24  double get_t_test(T t) const;
25  double get_t_test(size_t npoints, double mean, double stddev) const;
26  double get_t_test(const Stats<T> &other) const;
27  double get_z_test(const Stats<T> &other) const;
28  double get_test(const Stats<T> &other) const;
29  std::vector<Tpod> get_quantiles(unsigned int quantiles) const;
30  std::vector<size_t> get_bins(unsigned int bins) const;
31  bool is_same_distribution_95(size_t npoints, double mean, double stddev) const;
32  bool is_same_distribution_95(const Stats<T> &other) const;
33  bool is_same_distribution_99(size_t npoints, double mean, double stddev) const;
34  bool is_same_distribution_99(const Stats<T> &other) const;
35 
36  double get_cdf95(size_t df) const;
37  double get_cdf95(const Stats<T> &other) const;
38  double get_cdf99(size_t df) const;
39  double get_cdf99(const Stats<T> &other) const;
40 
41 private:
42  inline bool is_cached(int bit) const;
43  inline void set_cached(int bit) const;
44 
45  const std::vector<T> &values;
46 
47  mutable uint64_t cached;
48  mutable Tpod min;
49  mutable Tpod max;
50  mutable Tpod median;
51  mutable double mean;
52  mutable double standard_deviation;
53  mutable double standard_error;
54  mutable double variance;
55  mutable double kurtosis;
56 };
57 
58 #include "stats.inl"
Tpod get_min() const
std::vector< size_t > get_bins(unsigned int bins) const
const uint32_t T[512]
Definition: stats.h:6
Tpod get_median() const
double get_non_parametric_skew() const
double get_standard_deviation() const
bool is_same_distribution_99(size_t npoints, double mean, double stddev) const
double get_mean() const
double get_confidence_interval_95() const
Tpod get_max() const
double get_cdf99(size_t df) const
Stats(const std::vector< T > &v)
Definition: stats.h:9
double get_test(const Stats< T > &other) const
double get_confidence_interval_99() const
unsigned __int64 uint64_t
Definition: stdint.h:136
double get_standard_error() const
double get_variance() const
double get_t_test(T t) const
double get_cdf95(size_t df) const
double get_z_test(const Stats< T > &other) const
~Stats()
Definition: stats.h:10
std::vector< Tpod > get_quantiles(unsigned int quantiles) const
bool is_same_distribution_95(size_t npoints, double mean, double stddev) const
size_t get_size() const
double get_kurtosis() const