Monero
Loading...
Searching...
No Matches
stats.h
Go to the documentation of this file.
1#pragma once
2
3#include <vector>
4
5template<typename T, typename Tpod = T>
6class Stats
7{
8public:
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
41private:
42 inline bool is_cached(int bit) const;
43 inline void set_cached(int bit) const;
44
45 const std::vector<T> &values;
46
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"
Definition stats.h:7
double get_confidence_interval_95() const
Definition stats.inl:164
void set_cached(int bit) const
Definition stats.inl:37
double get_variance() const
Definition stats.inl:229
double get_standard_deviation() const
Definition stats.inl:202
size_t get_size() const
Definition stats.inl:43
double kurtosis
Definition stats.h:55
bool is_same_distribution_99(size_t npoints, double mean, double stddev) const
Definition stats.inl:190
Tpod median
Definition stats.h:50
double standard_deviation
Definition stats.h:52
const std::vector< T > & values
Definition stats.h:45
double variance
Definition stats.h:54
double get_kurtosis() const
Definition stats.inl:241
double get_t_test(T t) const
Definition stats.inl:272
bool is_same_distribution_95(size_t npoints, double mean, double stddev) const
Definition stats.inl:178
double get_z_test(const Stats< T > &other) const
Definition stats.inl:296
Tpod max
Definition stats.h:49
double get_mean() const
Definition stats.inl:98
double get_cdf99(size_t df) const
Definition stats.inl:139
Tpod min
Definition stats.h:48
double mean
Definition stats.h:51
Stats(const std::vector< T > &v)
Definition stats.h:9
double standard_error
Definition stats.h:53
~Stats()
Definition stats.h:10
double get_test(const Stats< T > &other) const
Definition stats.inl:312
double get_confidence_interval_99() const
Definition stats.inl:171
double get_cdf95(size_t df) const
Definition stats.inl:114
uint64_t cached
Definition stats.h:47
Tpod get_min() const
Definition stats.inl:49
bool is_cached(int bit) const
Definition stats.inl:31
double get_non_parametric_skew() const
Definition stats.inl:266
std::vector< size_t > get_bins(unsigned int bins) const
Definition stats.inl:349
std::vector< Tpod > get_quantiles(unsigned int quantiles) const
Definition stats.inl:321
double get_standard_error() const
Definition stats.inl:218
Tpod get_median() const
Definition stats.inl:75
Tpod get_max() const
Definition stats.inl:62
unsigned __int64 uint64_t
Definition stdint.h:136
#define T(x)