From 81abdc15e9084714919d7fe5b1e89b3f99789ea1 Mon Sep 17 00:00:00 2001 From: foolnotion Date: Sat, 1 Jun 2024 19:31:51 +0000 Subject: [PATCH] deploy: 39645a06d157cc5d18fb1df2b5c03815038158b0 --- annotated.html | 5 +- annotated_dup.js | 5 +- bivariate_8hpp_source.html | 321 +++++++++--------- classes.html | 7 +- group__Univariate.html | 16 +- navtreeindex0.js | 5 +- search/all_1.js | 4 +- search/all_2.js | 2 +- search/all_3.js | 8 +- search/all_4.js | 2 +- search/all_5.js | 4 +- search/all_6.js | 5 +- search/classes_0.js | 3 +- search/classes_1.html | 37 ++ search/classes_1.js | 5 + search/functions_0.js | 2 +- search/functions_1.js | 8 +- search/functions_2.js | 2 +- search/functions_3.js | 2 +- search/groups_0.js | 2 +- search/groups_1.js | 2 +- search/groups_2.js | 2 +- search/pages_0.js | 2 +- search/searchdata.js | 2 +- ...ACE_1_1bivariate__accumulator-members.html | 142 ++++++++ ...__NAMESPACE_1_1bivariate__accumulator.html | 153 +++++++++ ...PACE_1_1bivariate__statistics-members.html | 142 ++++++++ ...T__NAMESPACE_1_1bivariate__statistics.html | 150 ++++++++ ...ACE_1_1univariate__statistics-members.html | 142 ++++++++ ...__NAMESPACE_1_1univariate__statistics.html | 150 ++++++++ univariate_8hpp_source.html | 73 ++-- vstat_8hpp_source.html | 33 +- 32 files changed, 1189 insertions(+), 249 deletions(-) create mode 100644 search/classes_1.html create mode 100644 search/classes_1.js create mode 100644 structVSTAT__NAMESPACE_1_1bivariate__accumulator-members.html create mode 100644 structVSTAT__NAMESPACE_1_1bivariate__accumulator.html create mode 100644 structVSTAT__NAMESPACE_1_1bivariate__statistics-members.html create mode 100644 structVSTAT__NAMESPACE_1_1bivariate__statistics.html create mode 100644 structVSTAT__NAMESPACE_1_1univariate__statistics-members.html create mode 100644 structVSTAT__NAMESPACE_1_1univariate__statistics.html diff --git a/annotated.html b/annotated.html index c82acc0..7b22375 100644 --- a/annotated.html +++ b/annotated.html @@ -131,7 +131,10 @@
Here are the classes, structs, unions and interfaces with brief descriptions:
[detail level 12]
- + + + +
 NVSTAT_NAMESPACE
 Cunivariate_accumulatorUnivariate accumulator object
 Cbivariate_accumulatorBivariate accumulator object
 Cbivariate_statisticsBivariate statistics
 Cunivariate_accumulatorUnivariate accumulator object
 Cunivariate_statisticsUnivariate statistics
diff --git a/annotated_dup.js b/annotated_dup.js index c403b53..0f19c22 100644 --- a/annotated_dup.js +++ b/annotated_dup.js @@ -1,6 +1,9 @@ var annotated_dup = [ [ "VSTAT_NAMESPACE", null, [ - [ "univariate_accumulator", "structVSTAT__NAMESPACE_1_1univariate__accumulator.html", null ] + [ "bivariate_accumulator", "structVSTAT__NAMESPACE_1_1bivariate__accumulator.html", null ], + [ "bivariate_statistics", "structVSTAT__NAMESPACE_1_1bivariate__statistics.html", null ], + [ "univariate_accumulator", "structVSTAT__NAMESPACE_1_1univariate__accumulator.html", null ], + [ "univariate_statistics", "structVSTAT__NAMESPACE_1_1univariate__statistics.html", null ] ] ] ]; \ No newline at end of file diff --git a/bivariate_8hpp_source.html b/bivariate_8hpp_source.html index de160af..e3bcbe6 100644 --- a/bivariate_8hpp_source.html +++ b/bivariate_8hpp_source.html @@ -137,168 +137,169 @@
7 #include "combine.hpp"
8 
9 namespace VSTAT_NAMESPACE {
-
10 
-
11 template <typename T>
-
12 struct bivariate_accumulator {
-
13  static auto load_state(T sx, T sy, T sw, T sxx, T syy, T sxy) noexcept -> bivariate_accumulator<T> // NOLINT
-
14  {
-
15  bivariate_accumulator<T> acc;
-
16  acc.sum_w = sw;
-
17  acc.sum_w_old = sw;
-
18  acc.sum_x = sx;
-
19  acc.sum_y = sy;
-
20  acc.sum_xx = sxx;
-
21  acc.sum_yy = syy;
-
22  acc.sum_xy = sxy;
-
23  return acc;
-
24  }
-
25 
-
26  static auto load_state(std::tuple<T, T, T, T, T, T> state) noexcept -> bivariate_accumulator<T>
-
27  {
-
28  auto [sx, sy, sw, sxx, syy, sxy] = state;
-
29  return load_state(sx, sy, sw, sxx, syy, sxy);
-
30  }
-
31 
-
32  inline void operator()(T x, T y) noexcept
-
33  {
-
34  T dx = x * sum_w - sum_x;
-
35  T dy = y * sum_w - sum_y;
-
36 
-
37  sum_w += 1;
+
13 template <typename T>
+
14 struct bivariate_accumulator {
+
15  static auto load_state(T sx, T sy, T sw, T sxx, T syy, T sxy) noexcept -> bivariate_accumulator<T> // NOLINT
+
16  {
+
17  bivariate_accumulator<T> acc;
+
18  acc.sum_w = sw;
+
19  acc.sum_w_old = sw;
+
20  acc.sum_x = sx;
+
21  acc.sum_y = sy;
+
22  acc.sum_xx = sxx;
+
23  acc.sum_yy = syy;
+
24  acc.sum_xy = sxy;
+
25  return acc;
+
26  }
+
27 
+
28  static auto load_state(std::tuple<T, T, T, T, T, T> state) noexcept -> bivariate_accumulator<T>
+
29  {
+
30  auto [sx, sy, sw, sxx, syy, sxy] = state;
+
31  return load_state(sx, sy, sw, sxx, syy, sxy);
+
32  }
+
33 
+
34  inline void operator()(T x, T y) noexcept
+
35  {
+
36  T dx = x * sum_w - sum_x;
+
37  T dy = y * sum_w - sum_y;
38 
-
39  T f = 1. / (sum_w * sum_w_old);
-
40  sum_xx += f * dx * dx;
-
41  sum_yy += f * dy * dy;
-
42  sum_xy += f * dx * dy;
-
43 
-
44  sum_x += x;
-
45  sum_y += y;
-
46 
-
47  sum_w_old = sum_w;
-
48  }
-
49 
-
50  inline void operator()(T x, T y, T w) noexcept // NOLINT
-
51  {
-
52  T dx = x * sum_w - sum_x;
-
53  T dy = y * sum_w - sum_y;
-
54 
-
55  sum_x += x * w;
-
56  sum_y += y * w;
-
57  sum_w += w;
-
58 
-
59  T f = w / (sum_w * sum_w_old);
-
60  sum_xx += f * dx * dx;
-
61  sum_yy += f * dy * dy;
-
62  sum_xy += f * dx * dy;
-
63 
-
64  sum_w_old = sum_w;
-
65  }
-
66 
-
67  template <typename U>
-
68  requires eve::simd_value<T> && eve::simd_compatible_ptr<U, T>
-
69  inline void operator()(U const* x, U const* y) noexcept
-
70  {
-
71  (*this)(T{x}, T{y});
-
72  }
-
73 
-
74  template <typename U>
-
75  requires eve::simd_value<T> && eve::simd_compatible_ptr<U, T>
-
76  inline void operator()(U const* x, U const* y, U const* w) noexcept
-
77  {
-
78  (*this)(T{x}, T{y}, T{w});
-
79  }
-
80 
-
81  // performs a reduction on the vector types and returns the sums and the squared residuals sums
-
82  auto stats() const noexcept -> std::tuple<double, double, double, double, double, double>
-
83  {
-
84  if constexpr (std::is_floating_point_v<T>) {
-
85  return { sum_w, sum_x, sum_y, sum_xx, sum_yy, sum_xy };
-
86  } else {
-
87  auto [sxx, syy, sxy] = combine(sum_w, sum_x, sum_y, sum_xx, sum_yy, sum_xy);
-
88  return { eve::reduce(sum_w), eve::reduce(sum_x), eve::reduce(sum_y), sxx, syy, sxy };
-
89  }
-
90  }
-
91 
-
92 private:
-
93  // sum of weights
-
94  T sum_w{0};
-
95  T sum_w_old{1};
-
96  // means
-
97  T sum_x{0};
-
98  T sum_y{0};
-
99  // squared residuals
-
100  T sum_xx{0};
-
101  T sum_yy{0};
-
102  T sum_xy{0};
-
103 };
-
104 
-
105 struct bivariate_statistics {
-
106  double count;
-
107  double sum_x;
-
108  double sum_y;
-
109  double ssr_x;
-
110  double ssr_y;
-
111  double sum_xy;
-
112  double mean_x;
-
113  double mean_y;
-
114  double variance_x;
-
115  double variance_y;
-
116  double sample_variance_x;
-
117  double sample_variance_y;
-
118  double correlation;
-
119  double covariance;
-
120  double sample_covariance;
-
121 
-
122  template <typename T>
-
123  explicit bivariate_statistics(T accumulator)
-
124  {
-
125  auto [sw, sx, sy, sxx, syy, sxy] = accumulator.stats();
-
126  count = sw;
-
127  sum_x = sx;
-
128  sum_y = sy;
-
129  ssr_x = sxx;
-
130  ssr_y = syy;
-
131  sum_xy = sxy;
-
132  mean_x = sx / sw;
-
133  mean_y = sy / sw;
-
134  variance_x = sxx / sw;
-
135  variance_y = syy / sw;
-
136  sample_variance_x = sxx / (sw - 1);
-
137  sample_variance_y = syy / (sw - 1);
-
138 
-
139  if (!(sxx > 0 && syy > 0)) {
-
140  correlation = static_cast<double>(sxx == syy);
-
141  } else {
-
142  correlation = sxy / std::sqrt(sxx * syy);
-
143  }
-
144 
-
145  covariance = sxy / sw;
-
146  sample_covariance = sxy / (sw - 1);
-
147  }
-
148 };
+
39  sum_w += 1;
+
40 
+
41  T f = 1. / (sum_w * sum_w_old);
+
42  sum_xx += f * dx * dx;
+
43  sum_yy += f * dy * dy;
+
44  sum_xy += f * dx * dy;
+
45 
+
46  sum_x += x;
+
47  sum_y += y;
+
48 
+
49  sum_w_old = sum_w;
+
50  }
+
51 
+
52  inline void operator()(T x, T y, T w) noexcept // NOLINT
+
53  {
+
54  T dx = x * sum_w - sum_x;
+
55  T dy = y * sum_w - sum_y;
+
56 
+
57  sum_x += x * w;
+
58  sum_y += y * w;
+
59  sum_w += w;
+
60 
+
61  T f = w / (sum_w * sum_w_old);
+
62  sum_xx += f * dx * dx;
+
63  sum_yy += f * dy * dy;
+
64  sum_xy += f * dx * dy;
+
65 
+
66  sum_w_old = sum_w;
+
67  }
+
68 
+
69  template <typename U>
+
70  requires eve::simd_value<T> && eve::simd_compatible_ptr<U, T>
+
71  inline void operator()(U const* x, U const* y) noexcept
+
72  {
+
73  (*this)(T{x}, T{y});
+
74  }
+
75 
+
76  template <typename U>
+
77  requires eve::simd_value<T> && eve::simd_compatible_ptr<U, T>
+
78  inline void operator()(U const* x, U const* y, U const* w) noexcept
+
79  {
+
80  (*this)(T{x}, T{y}, T{w});
+
81  }
+
82 
+
83  // performs a reduction on the vector types and returns the sums and the squared residuals sums
+
84  auto stats() const noexcept -> std::tuple<double, double, double, double, double, double>
+
85  {
+
86  if constexpr (std::is_floating_point_v<T>) {
+
87  return { sum_w, sum_x, sum_y, sum_xx, sum_yy, sum_xy };
+
88  } else {
+
89  auto [sxx, syy, sxy] = combine(sum_w, sum_x, sum_y, sum_xx, sum_yy, sum_xy);
+
90  return { eve::reduce(sum_w), eve::reduce(sum_x), eve::reduce(sum_y), sxx, syy, sxy };
+
91  }
+
92  }
+
93 
+
94 private:
+
95  // sum of weights
+
96  T sum_w{0};
+
97  T sum_w_old{1};
+
98  // means
+
99  T sum_x{0};
+
100  T sum_y{0};
+
101  // squared residuals
+
102  T sum_xx{0};
+
103  T sum_yy{0};
+
104  T sum_xy{0};
+
105 };
+
106 
+
110 struct bivariate_statistics {
+
111  double count;
+
112  double sum_x;
+
113  double sum_y;
+
114  double ssr_x;
+
115  double ssr_y;
+
116  double sum_xy;
+
117  double mean_x;
+
118  double mean_y;
+
119  double variance_x;
+
120  double variance_y;
+
121  double sample_variance_x;
+
122  double sample_variance_y;
+
123  double correlation;
+
124  double covariance;
+
125  double sample_covariance;
+
126 
+
127  template <typename T>
+
128  explicit bivariate_statistics(T accumulator)
+
129  {
+
130  auto [sw, sx, sy, sxx, syy, sxy] = accumulator.stats();
+
131  count = sw;
+
132  sum_x = sx;
+
133  sum_y = sy;
+
134  ssr_x = sxx;
+
135  ssr_y = syy;
+
136  sum_xy = sxy;
+
137  mean_x = sx / sw;
+
138  mean_y = sy / sw;
+
139  variance_x = sxx / sw;
+
140  variance_y = syy / sw;
+
141  sample_variance_x = sxx / (sw - 1);
+
142  sample_variance_y = syy / (sw - 1);
+
143 
+
144  if (!(sxx > 0 && syy > 0)) {
+
145  correlation = static_cast<double>(sxx == syy);
+
146  } else {
+
147  correlation = sxy / std::sqrt(sxx * syy);
+
148  }
149 
-
150 inline auto operator<<(std::ostream& os, bivariate_statistics const& stats) -> std::ostream&
-
151 {
-
152  os << "count: \t" << stats.count
-
153  << "\nsum_x: \t" << stats.sum_x
-
154  << "\nssr_x: \t" << stats.ssr_x
-
155  << "\nmean_x: \t" << stats.mean_x
-
156  << "\nvariance_x: \t" << stats.variance_x
-
157  << "\nsample variance_x:\t" << stats.sample_variance_x
-
158  << "\nsum_y: \t" << stats.sum_y
-
159  << "\nssr_y: \t" << stats.ssr_y
-
160  << "\nmean_y: \t" << stats.mean_y
-
161  << "\nvariance_y: \t" << stats.variance_y
-
162  << "\nsample variance_y:\t" << stats.sample_variance_y
-
163  << "\ncorrelation: \t" << stats.correlation
-
164  << "\ncovariance: \t" << stats.covariance
-
165  << "\nsample covariance:\t" << stats.sample_covariance
-
166  << "\n";
-
167  return os;
-
168 }
-
169 } // namespace VSTAT_NAMESPACE
-
170 
-
171 #endif
+
150  covariance = sxy / sw;
+
151  sample_covariance = sxy / (sw - 1);
+
152  }
+
153 };
+
154 
+
155 inline auto operator<<(std::ostream& os, bivariate_statistics const& stats) -> std::ostream&
+
156 {
+
157  os << "count: \t" << stats.count
+
158  << "\nsum_x: \t" << stats.sum_x
+
159  << "\nssr_x: \t" << stats.ssr_x
+
160  << "\nmean_x: \t" << stats.mean_x
+
161  << "\nvariance_x: \t" << stats.variance_x
+
162  << "\nsample variance_x:\t" << stats.sample_variance_x
+
163  << "\nsum_y: \t" << stats.sum_y
+
164  << "\nssr_y: \t" << stats.ssr_y
+
165  << "\nmean_y: \t" << stats.mean_y
+
166  << "\nvariance_y: \t" << stats.variance_y
+
167  << "\nsample variance_y:\t" << stats.sample_variance_y
+
168  << "\ncorrelation: \t" << stats.correlation
+
169  << "\ncovariance: \t" << stats.covariance
+
170  << "\nsample covariance:\t" << stats.sample_covariance
+
171  << "\n";
+
172  return os;
+
173 }
+
174 } // namespace VSTAT_NAMESPACE
+
175 
+
176 #endif
+
Bivariate accumulator object.
Definition: bivariate.hpp:14
+
Bivariate statistics.
Definition: bivariate.hpp:110
diff --git a/classes.html b/classes.html index 3cbeab1..392c12b 100644 --- a/classes.html +++ b/classes.html @@ -128,11 +128,14 @@
Class Index
- +
B | U
+
B
+
bivariate_accumulator (VSTAT_NAMESPACE)
bivariate_statistics (VSTAT_NAMESPACE)
+
U
-
univariate_accumulator (VSTAT_NAMESPACE)
+
univariate_accumulator (VSTAT_NAMESPACE)
univariate_statistics (VSTAT_NAMESPACE)
diff --git a/group__Univariate.html b/group__Univariate.html index 735c0e9..ed61fac 100644 --- a/group__Univariate.html +++ b/group__Univariate.html @@ -134,16 +134,16 @@

Functions

template<std::floating_point T, std::input_iterator I, typename F = std::identity> -requires concepts::arithmetic_projection< F, std::iter_value_t< I > > auto accumulate (I first, std::sized_sentinel_for< I > auto last, F &&f=F{}) noexcept -> univariate_statistics +requires concepts::arithmetic_projection< F, std::iter_value_t< I > > auto accumulate (I first, std::sized_sentinel_for< I > auto last, F &&f=F{}) noexcept -> univariate_statistics   template<std::floating_point T, std::input_iterator I, std::input_iterator J, typename F = std::identity> -requires concepts::arithmetic_projection< F, std::iter_value_t< I > > and std::is_arithmetic_v< std::iter_value_t< J > > auto accumulate (I first1, std::sized_sentinel_for< I > auto last1, J first2, F &&f=F{}) noexcept -> univariate_statistics +requires concepts::arithmetic_projection< F, std::iter_value_t< I > > and std::is_arithmetic_v< std::iter_value_t< J > > auto accumulate (I first1, std::sized_sentinel_for< I > auto last1, J first2, F &&f=F{}) noexcept -> univariate_statistics   template<std::floating_point T, std::input_iterator I, std::input_iterator J, typename BinaryOp , typename F1 = std::identity, typename F2 = std::identity> -requires std::is_invocable_v< F1, std::iter_value_t< I > > and std::is_invocable_v< F2, std::iter_value_t< J > > and std::is_invocable_v< BinaryOp, std::invoke_result_t< F1, std::iter_value_t< I > >, std::invoke_result_t< F2, std::iter_value_t< J > > > and concepts::arithmetic_projection< BinaryOp, std::invoke_result_t< F1, std::iter_value_t< I > >, std::invoke_result_t< F2, std::iter_value_t< J > > > auto accumulate (I first1, std::sized_sentinel_for< I > auto last1, J first2, BinaryOp &&op=BinaryOp{}, F1 &&f1=F1{}, F2 &&f2=F2{}) noexcept -> univariate_statistics +requires std::is_invocable_v< F1, std::iter_value_t< I > > and std::is_invocable_v< F2, std::iter_value_t< J > > and std::is_invocable_v< BinaryOp, std::invoke_result_t< F1, std::iter_value_t< I > >, std::invoke_result_t< F2, std::iter_value_t< J > > > and concepts::arithmetic_projection< BinaryOp, std::invoke_result_t< F1, std::iter_value_t< I > >, std::invoke_result_t< F2, std::iter_value_t< J > > > auto accumulate (I first1, std::sized_sentinel_for< I > auto last1, J first2, BinaryOp &&op=BinaryOp{}, F1 &&f1=F1{}, F2 &&f2=F2{}) noexcept -> univariate_statistics   template<std::floating_point T, std::input_iterator I, std::input_iterator J, std::input_iterator K, typename BinaryOp , typename F1 = std::identity, typename F2 = std::identity> -requires std::is_arithmetic_v< std::iter_value_t< K > > &&std::is_invocable_v< F1, std::iter_value_t< I > > &&std::is_invocable_v< F2, std::iter_value_t< J > > &&std::is_invocable_v< BinaryOp, std::invoke_result_t< F1, std::iter_value_t< I > >, std::invoke_result_t< F2, std::iter_value_t< J > > > &&concepts::arithmetic_projection< BinaryOp, std::invoke_result_t< F1, std::iter_value_t< I > >, std::invoke_result_t< F2, std::iter_value_t< J > > > auto accumulate (I first1, std::sized_sentinel_for< I > auto last1, J first2, K first3, BinaryOp &&op=BinaryOp{}, F1 &&f1=F1{}, F2 &&f2=F2{}) noexcept -> univariate_statistics +requires std::is_arithmetic_v< std::iter_value_t< K > > &&std::is_invocable_v< F1, std::iter_value_t< I > > &&std::is_invocable_v< F2, std::iter_value_t< J > > &&std::is_invocable_v< BinaryOp, std::invoke_result_t< F1, std::iter_value_t< I > >, std::invoke_result_t< F2, std::iter_value_t< J > > > &&concepts::arithmetic_projection< BinaryOp, std::invoke_result_t< F1, std::iter_value_t< I > >, std::invoke_result_t< F2, std::iter_value_t< J > > > auto accumulate (I first1, std::sized_sentinel_for< I > auto last1, J first2, K first3, BinaryOp &&op=BinaryOp{}, F1 &&f1=F1{}, F2 &&f2=F2{}) noexcept -> univariate_statistics  

Detailed Description

@@ -179,7 +179,7 @@

univariate_statistics @@ -256,7 +256,7 @@

univariate_statistics @@ -327,7 +327,7 @@

univariate_statistics @@ -411,7 +411,7 @@

univariate_statistics diff --git a/navtreeindex0.js b/navtreeindex0.js index 312d97a..45785d7 100644 --- a/navtreeindex0.js +++ b/navtreeindex0.js @@ -41,7 +41,10 @@ var NAVTREEINDEX0 = "md_index.html#autotoc_md11":[0,1], "modules.html":[1], "pages.html":[], -"structVSTAT__NAMESPACE_1_1univariate__accumulator.html":[2,0,0,0], +"structVSTAT__NAMESPACE_1_1bivariate__accumulator.html":[2,0,0,0], +"structVSTAT__NAMESPACE_1_1bivariate__statistics.html":[2,0,0,1], +"structVSTAT__NAMESPACE_1_1univariate__accumulator.html":[2,0,0,2], +"structVSTAT__NAMESPACE_1_1univariate__statistics.html":[2,0,0,3], "univariate_8hpp_source.html":[3,0,0,0,2], "util_8hpp_source.html":[3,0,0,0,3], "vstat_8hpp_source.html":[3,0,0,0,4] diff --git a/search/all_1.js b/search/all_1.js index 7829e6e..1d184c1 100644 --- a/search/all_1.js +++ b/search/all_1.js @@ -1,4 +1,6 @@ var searchData= [ - ['bivariate_20statistics_1',['Bivariate statistics',['../group__Bivariate.html',1,'']]] + ['bivariate_20statistics_1',['Bivariate statistics',['../group__Bivariate.html',1,'']]], + ['bivariate_5faccumulator_2',['bivariate_accumulator',['../structVSTAT__NAMESPACE_1_1bivariate__accumulator.html',1,'VSTAT_NAMESPACE']]], + ['bivariate_5fstatistics_3',['bivariate_statistics',['../structVSTAT__NAMESPACE_1_1bivariate__statistics.html',1,'VSTAT_NAMESPACE']]] ]; diff --git a/search/all_2.js b/search/all_2.js index 05210bb..f4f4ba9 100644 --- a/search/all_2.js +++ b/search/all_2.js @@ -1,4 +1,4 @@ var searchData= [ - ['introduction_2',['Introduction',['../md_index.html',1,'']]] + ['introduction_4',['Introduction',['../md_index.html',1,'']]] ]; diff --git a/search/all_3.js b/search/all_3.js index c8dd221..0b0e392 100644 --- a/search/all_3.js +++ b/search/all_3.js @@ -1,7 +1,7 @@ var searchData= [ - ['mean_5fabsolute_5ferror_3',['mean_absolute_error',['../group__Metrics.html#ga6efc3d1a080c044dfad885f9e5871898',1,'VSTAT_NAMESPACE::metrics::mean_absolute_error(I first1, std::sentinel_for< I > auto last1, J first2) noexcept -> double'],['../group__Metrics.html#gaf2912b6f85e72b2c27b99b60518f7ecc',1,'VSTAT_NAMESPACE::metrics::mean_absolute_error(I first1, std::sentinel_for< I > auto last1, J first2, K first3) noexcept -> double']]], - ['mean_5fabsolute_5fpercentage_5ferror_4',['mean_absolute_percentage_error',['../group__Metrics.html#ga257d6174b8798008ae8d0cdbcd035ddd',1,'VSTAT_NAMESPACE::metrics::mean_absolute_percentage_error(I first1, std::sentinel_for< I > auto last1, J first2) noexcept -> double'],['../group__Metrics.html#ga6a6cc233c6d00908833545355eacc54b',1,'VSTAT_NAMESPACE::metrics::mean_absolute_percentage_error(I first1, std::sentinel_for< I > auto last1, J first2, K first3) noexcept -> double']]], - ['mean_5fsquared_5ferror_5',['mean_squared_error',['../group__Metrics.html#ga774be32caf875a18b987dc8df32c0088',1,'VSTAT_NAMESPACE::metrics::mean_squared_error(I first1, std::sentinel_for< I > auto last1, J first2) noexcept -> double'],['../group__Metrics.html#gacd7f0451e45e4edfa18e75dd02245963',1,'VSTAT_NAMESPACE::metrics::mean_squared_error(I first1, std::sentinel_for< I > auto last1, J first2, K first3) noexcept -> double']]], - ['mean_5fsquared_5flog_5ferror_6',['mean_squared_log_error',['../group__Metrics.html#ga734f18551e515236506f1512fd317781',1,'VSTAT_NAMESPACE::metrics::mean_squared_log_error(I first1, std::sentinel_for< I > auto last1, J first2) noexcept -> double'],['../group__Metrics.html#ga75f80b9244f2c8dd3273367f60d1d1f7',1,'VSTAT_NAMESPACE::metrics::mean_squared_log_error(I first1, std::sentinel_for< I > auto last1, J first2, K first3) noexcept -> double']]] + ['mean_5fabsolute_5ferror_5',['mean_absolute_error',['../group__Metrics.html#ga6efc3d1a080c044dfad885f9e5871898',1,'VSTAT_NAMESPACE::metrics::mean_absolute_error(I first1, std::sentinel_for< I > auto last1, J first2) noexcept -> double'],['../group__Metrics.html#gaf2912b6f85e72b2c27b99b60518f7ecc',1,'VSTAT_NAMESPACE::metrics::mean_absolute_error(I first1, std::sentinel_for< I > auto last1, J first2, K first3) noexcept -> double']]], + ['mean_5fabsolute_5fpercentage_5ferror_6',['mean_absolute_percentage_error',['../group__Metrics.html#ga257d6174b8798008ae8d0cdbcd035ddd',1,'VSTAT_NAMESPACE::metrics::mean_absolute_percentage_error(I first1, std::sentinel_for< I > auto last1, J first2) noexcept -> double'],['../group__Metrics.html#ga6a6cc233c6d00908833545355eacc54b',1,'VSTAT_NAMESPACE::metrics::mean_absolute_percentage_error(I first1, std::sentinel_for< I > auto last1, J first2, K first3) noexcept -> double']]], + ['mean_5fsquared_5ferror_7',['mean_squared_error',['../group__Metrics.html#ga774be32caf875a18b987dc8df32c0088',1,'VSTAT_NAMESPACE::metrics::mean_squared_error(I first1, std::sentinel_for< I > auto last1, J first2) noexcept -> double'],['../group__Metrics.html#gacd7f0451e45e4edfa18e75dd02245963',1,'VSTAT_NAMESPACE::metrics::mean_squared_error(I first1, std::sentinel_for< I > auto last1, J first2, K first3) noexcept -> double']]], + ['mean_5fsquared_5flog_5ferror_8',['mean_squared_log_error',['../group__Metrics.html#ga734f18551e515236506f1512fd317781',1,'VSTAT_NAMESPACE::metrics::mean_squared_log_error(I first1, std::sentinel_for< I > auto last1, J first2) noexcept -> double'],['../group__Metrics.html#ga75f80b9244f2c8dd3273367f60d1d1f7',1,'VSTAT_NAMESPACE::metrics::mean_squared_log_error(I first1, std::sentinel_for< I > auto last1, J first2, K first3) noexcept -> double']]] ]; diff --git a/search/all_4.js b/search/all_4.js index 20ebfad..f8777e1 100644 --- a/search/all_4.js +++ b/search/all_4.js @@ -1,4 +1,4 @@ var searchData= [ - ['poisson_5fneg_5flikelihood_5floss_7',['poisson_neg_likelihood_loss',['../group__Metrics.html#gad5b831228c1623b09cc6018c4a365486',1,'VSTAT_NAMESPACE::metrics::poisson_neg_likelihood_loss(I first1, std::sentinel_for< I > auto last1, J first2) noexcept -> double'],['../group__Metrics.html#ga4b4e167b829f398bc63959df3c0ddab1',1,'VSTAT_NAMESPACE::metrics::poisson_neg_likelihood_loss(I first1, std::sentinel_for< I > auto last1, J first2, K first3) noexcept -> double']]] + ['poisson_5fneg_5flikelihood_5floss_9',['poisson_neg_likelihood_loss',['../group__Metrics.html#gad5b831228c1623b09cc6018c4a365486',1,'VSTAT_NAMESPACE::metrics::poisson_neg_likelihood_loss(I first1, std::sentinel_for< I > auto last1, J first2) noexcept -> double'],['../group__Metrics.html#ga4b4e167b829f398bc63959df3c0ddab1',1,'VSTAT_NAMESPACE::metrics::poisson_neg_likelihood_loss(I first1, std::sentinel_for< I > auto last1, J first2, K first3) noexcept -> double']]] ]; diff --git a/search/all_5.js b/search/all_5.js index 81db917..cee9d57 100644 --- a/search/all_5.js +++ b/search/all_5.js @@ -1,5 +1,5 @@ var searchData= [ - ['r2_5fscore_8',['r2_score',['../group__Metrics.html#gaf7bc72fd015073d1e874908c34a8b20b',1,'VSTAT_NAMESPACE::metrics::r2_score(I first1, std::sentinel_for< I > auto last1, J first2) noexcept -> double'],['../group__Metrics.html#gacf27ea2cf4edc369707d2f1ff58977e6',1,'VSTAT_NAMESPACE::metrics::r2_score(I first1, std::sentinel_for< I > auto last1, J first2, K first3) noexcept -> double']]], - ['regression_20metrics_9',['Regression metrics',['../group__Metrics.html',1,'']]] + ['r2_5fscore_10',['r2_score',['../group__Metrics.html#gaf7bc72fd015073d1e874908c34a8b20b',1,'VSTAT_NAMESPACE::metrics::r2_score(I first1, std::sentinel_for< I > auto last1, J first2) noexcept -> double'],['../group__Metrics.html#gacf27ea2cf4edc369707d2f1ff58977e6',1,'VSTAT_NAMESPACE::metrics::r2_score(I first1, std::sentinel_for< I > auto last1, J first2, K first3) noexcept -> double']]], + ['regression_20metrics_11',['Regression metrics',['../group__Metrics.html',1,'']]] ]; diff --git a/search/all_6.js b/search/all_6.js index fe418ee..d74c17a 100644 --- a/search/all_6.js +++ b/search/all_6.js @@ -1,5 +1,6 @@ var searchData= [ - ['univariate_20statistics_10',['Univariate statistics',['../group__Univariate.html',1,'']]], - ['univariate_5faccumulator_11',['univariate_accumulator',['../structVSTAT__NAMESPACE_1_1univariate__accumulator.html',1,'VSTAT_NAMESPACE']]] + ['univariate_20statistics_12',['Univariate statistics',['../group__Univariate.html',1,'']]], + ['univariate_5faccumulator_13',['univariate_accumulator',['../structVSTAT__NAMESPACE_1_1univariate__accumulator.html',1,'VSTAT_NAMESPACE']]], + ['univariate_5fstatistics_14',['univariate_statistics',['../structVSTAT__NAMESPACE_1_1univariate__statistics.html',1,'VSTAT_NAMESPACE']]] ]; diff --git a/search/classes_0.js b/search/classes_0.js index 71eab23..6ea26d8 100644 --- a/search/classes_0.js +++ b/search/classes_0.js @@ -1,4 +1,5 @@ var searchData= [ - ['univariate_5faccumulator_12',['univariate_accumulator',['../structVSTAT__NAMESPACE_1_1univariate__accumulator.html',1,'VSTAT_NAMESPACE']]] + ['bivariate_5faccumulator_15',['bivariate_accumulator',['../structVSTAT__NAMESPACE_1_1bivariate__accumulator.html',1,'VSTAT_NAMESPACE']]], + ['bivariate_5fstatistics_16',['bivariate_statistics',['../structVSTAT__NAMESPACE_1_1bivariate__statistics.html',1,'VSTAT_NAMESPACE']]] ]; diff --git a/search/classes_1.html b/search/classes_1.html new file mode 100644 index 0000000..576e916 --- /dev/null +++ b/search/classes_1.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
+
Loading...
+
+ +
Searching...
+
No Matches
+ +
+ + diff --git a/search/classes_1.js b/search/classes_1.js new file mode 100644 index 0000000..81e7617 --- /dev/null +++ b/search/classes_1.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['univariate_5faccumulator_17',['univariate_accumulator',['../structVSTAT__NAMESPACE_1_1univariate__accumulator.html',1,'VSTAT_NAMESPACE']]], + ['univariate_5fstatistics_18',['univariate_statistics',['../structVSTAT__NAMESPACE_1_1univariate__statistics.html',1,'VSTAT_NAMESPACE']]] +]; diff --git a/search/functions_0.js b/search/functions_0.js index dcf176d..28bf0bf 100644 --- a/search/functions_0.js +++ b/search/functions_0.js @@ -1,4 +1,4 @@ var searchData= [ - ['accumulate_13',['accumulate',['../group__Univariate.html#ga49abd094b91715793a07608562f73e5d',1,'VSTAT_NAMESPACE::univariate::accumulate(I first, std::sized_sentinel_for< I > auto last, F &&f=F{}) noexcept -> univariate_statistics'],['../group__Univariate.html#gaebc776ca188820d43986fb5e1dc1d8be',1,'VSTAT_NAMESPACE::univariate::accumulate(I first1, std::sized_sentinel_for< I > auto last1, J first2, F &&f=F{}) noexcept -> univariate_statistics'],['../group__Univariate.html#ga8f4fa939b8124061175a00057ca97854',1,'VSTAT_NAMESPACE::univariate::accumulate(I first1, std::sized_sentinel_for< I > auto last1, J first2, BinaryOp &&op=BinaryOp{}, F1 &&f1=F1{}, F2 &&f2=F2{}) noexcept -> univariate_statistics'],['../group__Univariate.html#gaca796362d6ad175d2944a4a69e7c2cbe',1,'VSTAT_NAMESPACE::univariate::accumulate(I first1, std::sized_sentinel_for< I > auto last1, J first2, K first3, BinaryOp &&op=BinaryOp{}, F1 &&f1=F1{}, F2 &&f2=F2{}) noexcept -> univariate_statistics'],['../group__Bivariate.html#ga2ef63d6210cde37bd0cfd3ef293afbec',1,'VSTAT_NAMESPACE::bivariate::accumulate()']]] + ['accumulate_19',['accumulate',['../group__Univariate.html#ga49abd094b91715793a07608562f73e5d',1,'VSTAT_NAMESPACE::univariate::accumulate(I first, std::sized_sentinel_for< I > auto last, F &&f=F{}) noexcept -> univariate_statistics'],['../group__Univariate.html#gaebc776ca188820d43986fb5e1dc1d8be',1,'VSTAT_NAMESPACE::univariate::accumulate(I first1, std::sized_sentinel_for< I > auto last1, J first2, F &&f=F{}) noexcept -> univariate_statistics'],['../group__Univariate.html#ga8f4fa939b8124061175a00057ca97854',1,'VSTAT_NAMESPACE::univariate::accumulate(I first1, std::sized_sentinel_for< I > auto last1, J first2, BinaryOp &&op=BinaryOp{}, F1 &&f1=F1{}, F2 &&f2=F2{}) noexcept -> univariate_statistics'],['../group__Univariate.html#gaca796362d6ad175d2944a4a69e7c2cbe',1,'VSTAT_NAMESPACE::univariate::accumulate(I first1, std::sized_sentinel_for< I > auto last1, J first2, K first3, BinaryOp &&op=BinaryOp{}, F1 &&f1=F1{}, F2 &&f2=F2{}) noexcept -> univariate_statistics'],['../group__Bivariate.html#ga2ef63d6210cde37bd0cfd3ef293afbec',1,'VSTAT_NAMESPACE::bivariate::accumulate()']]] ]; diff --git a/search/functions_1.js b/search/functions_1.js index faeb028..9e514e0 100644 --- a/search/functions_1.js +++ b/search/functions_1.js @@ -1,7 +1,7 @@ var searchData= [ - ['mean_5fabsolute_5ferror_14',['mean_absolute_error',['../group__Metrics.html#ga6efc3d1a080c044dfad885f9e5871898',1,'VSTAT_NAMESPACE::metrics::mean_absolute_error(I first1, std::sentinel_for< I > auto last1, J first2) noexcept -> double'],['../group__Metrics.html#gaf2912b6f85e72b2c27b99b60518f7ecc',1,'VSTAT_NAMESPACE::metrics::mean_absolute_error(I first1, std::sentinel_for< I > auto last1, J first2, K first3) noexcept -> double']]], - ['mean_5fabsolute_5fpercentage_5ferror_15',['mean_absolute_percentage_error',['../group__Metrics.html#ga257d6174b8798008ae8d0cdbcd035ddd',1,'VSTAT_NAMESPACE::metrics::mean_absolute_percentage_error(I first1, std::sentinel_for< I > auto last1, J first2) noexcept -> double'],['../group__Metrics.html#ga6a6cc233c6d00908833545355eacc54b',1,'VSTAT_NAMESPACE::metrics::mean_absolute_percentage_error(I first1, std::sentinel_for< I > auto last1, J first2, K first3) noexcept -> double']]], - ['mean_5fsquared_5ferror_16',['mean_squared_error',['../group__Metrics.html#ga774be32caf875a18b987dc8df32c0088',1,'VSTAT_NAMESPACE::metrics::mean_squared_error(I first1, std::sentinel_for< I > auto last1, J first2) noexcept -> double'],['../group__Metrics.html#gacd7f0451e45e4edfa18e75dd02245963',1,'VSTAT_NAMESPACE::metrics::mean_squared_error(I first1, std::sentinel_for< I > auto last1, J first2, K first3) noexcept -> double']]], - ['mean_5fsquared_5flog_5ferror_17',['mean_squared_log_error',['../group__Metrics.html#ga734f18551e515236506f1512fd317781',1,'VSTAT_NAMESPACE::metrics::mean_squared_log_error(I first1, std::sentinel_for< I > auto last1, J first2) noexcept -> double'],['../group__Metrics.html#ga75f80b9244f2c8dd3273367f60d1d1f7',1,'VSTAT_NAMESPACE::metrics::mean_squared_log_error(I first1, std::sentinel_for< I > auto last1, J first2, K first3) noexcept -> double']]] + ['mean_5fabsolute_5ferror_20',['mean_absolute_error',['../group__Metrics.html#ga6efc3d1a080c044dfad885f9e5871898',1,'VSTAT_NAMESPACE::metrics::mean_absolute_error(I first1, std::sentinel_for< I > auto last1, J first2) noexcept -> double'],['../group__Metrics.html#gaf2912b6f85e72b2c27b99b60518f7ecc',1,'VSTAT_NAMESPACE::metrics::mean_absolute_error(I first1, std::sentinel_for< I > auto last1, J first2, K first3) noexcept -> double']]], + ['mean_5fabsolute_5fpercentage_5ferror_21',['mean_absolute_percentage_error',['../group__Metrics.html#ga257d6174b8798008ae8d0cdbcd035ddd',1,'VSTAT_NAMESPACE::metrics::mean_absolute_percentage_error(I first1, std::sentinel_for< I > auto last1, J first2) noexcept -> double'],['../group__Metrics.html#ga6a6cc233c6d00908833545355eacc54b',1,'VSTAT_NAMESPACE::metrics::mean_absolute_percentage_error(I first1, std::sentinel_for< I > auto last1, J first2, K first3) noexcept -> double']]], + ['mean_5fsquared_5ferror_22',['mean_squared_error',['../group__Metrics.html#ga774be32caf875a18b987dc8df32c0088',1,'VSTAT_NAMESPACE::metrics::mean_squared_error(I first1, std::sentinel_for< I > auto last1, J first2) noexcept -> double'],['../group__Metrics.html#gacd7f0451e45e4edfa18e75dd02245963',1,'VSTAT_NAMESPACE::metrics::mean_squared_error(I first1, std::sentinel_for< I > auto last1, J first2, K first3) noexcept -> double']]], + ['mean_5fsquared_5flog_5ferror_23',['mean_squared_log_error',['../group__Metrics.html#ga734f18551e515236506f1512fd317781',1,'VSTAT_NAMESPACE::metrics::mean_squared_log_error(I first1, std::sentinel_for< I > auto last1, J first2) noexcept -> double'],['../group__Metrics.html#ga75f80b9244f2c8dd3273367f60d1d1f7',1,'VSTAT_NAMESPACE::metrics::mean_squared_log_error(I first1, std::sentinel_for< I > auto last1, J first2, K first3) noexcept -> double']]] ]; diff --git a/search/functions_2.js b/search/functions_2.js index 819956c..36bbc79 100644 --- a/search/functions_2.js +++ b/search/functions_2.js @@ -1,4 +1,4 @@ var searchData= [ - ['poisson_5fneg_5flikelihood_5floss_18',['poisson_neg_likelihood_loss',['../group__Metrics.html#gad5b831228c1623b09cc6018c4a365486',1,'VSTAT_NAMESPACE::metrics::poisson_neg_likelihood_loss(I first1, std::sentinel_for< I > auto last1, J first2) noexcept -> double'],['../group__Metrics.html#ga4b4e167b829f398bc63959df3c0ddab1',1,'VSTAT_NAMESPACE::metrics::poisson_neg_likelihood_loss(I first1, std::sentinel_for< I > auto last1, J first2, K first3) noexcept -> double']]] + ['poisson_5fneg_5flikelihood_5floss_24',['poisson_neg_likelihood_loss',['../group__Metrics.html#gad5b831228c1623b09cc6018c4a365486',1,'VSTAT_NAMESPACE::metrics::poisson_neg_likelihood_loss(I first1, std::sentinel_for< I > auto last1, J first2) noexcept -> double'],['../group__Metrics.html#ga4b4e167b829f398bc63959df3c0ddab1',1,'VSTAT_NAMESPACE::metrics::poisson_neg_likelihood_loss(I first1, std::sentinel_for< I > auto last1, J first2, K first3) noexcept -> double']]] ]; diff --git a/search/functions_3.js b/search/functions_3.js index 4a685e2..5b56fbd 100644 --- a/search/functions_3.js +++ b/search/functions_3.js @@ -1,4 +1,4 @@ var searchData= [ - ['r2_5fscore_19',['r2_score',['../group__Metrics.html#gaf7bc72fd015073d1e874908c34a8b20b',1,'VSTAT_NAMESPACE::metrics::r2_score(I first1, std::sentinel_for< I > auto last1, J first2) noexcept -> double'],['../group__Metrics.html#gacf27ea2cf4edc369707d2f1ff58977e6',1,'VSTAT_NAMESPACE::metrics::r2_score(I first1, std::sentinel_for< I > auto last1, J first2, K first3) noexcept -> double']]] + ['r2_5fscore_25',['r2_score',['../group__Metrics.html#gaf7bc72fd015073d1e874908c34a8b20b',1,'VSTAT_NAMESPACE::metrics::r2_score(I first1, std::sentinel_for< I > auto last1, J first2) noexcept -> double'],['../group__Metrics.html#gacf27ea2cf4edc369707d2f1ff58977e6',1,'VSTAT_NAMESPACE::metrics::r2_score(I first1, std::sentinel_for< I > auto last1, J first2, K first3) noexcept -> double']]] ]; diff --git a/search/groups_0.js b/search/groups_0.js index 4ab6bc4..92ada9b 100644 --- a/search/groups_0.js +++ b/search/groups_0.js @@ -1,4 +1,4 @@ var searchData= [ - ['bivariate_20statistics_20',['Bivariate statistics',['../group__Bivariate.html',1,'']]] + ['bivariate_20statistics_26',['Bivariate statistics',['../group__Bivariate.html',1,'']]] ]; diff --git a/search/groups_1.js b/search/groups_1.js index e50fb57..2d036f8 100644 --- a/search/groups_1.js +++ b/search/groups_1.js @@ -1,4 +1,4 @@ var searchData= [ - ['regression_20metrics_21',['Regression metrics',['../group__Metrics.html',1,'']]] + ['regression_20metrics_27',['Regression metrics',['../group__Metrics.html',1,'']]] ]; diff --git a/search/groups_2.js b/search/groups_2.js index ee0cffe..b233537 100644 --- a/search/groups_2.js +++ b/search/groups_2.js @@ -1,4 +1,4 @@ var searchData= [ - ['univariate_20statistics_22',['Univariate statistics',['../group__Univariate.html',1,'']]] + ['univariate_20statistics_28',['Univariate statistics',['../group__Univariate.html',1,'']]] ]; diff --git a/search/pages_0.js b/search/pages_0.js index 2432a40..7ca3647 100644 --- a/search/pages_0.js +++ b/search/pages_0.js @@ -1,4 +1,4 @@ var searchData= [ - ['introduction_23',['Introduction',['../md_index.html',1,'']]] + ['introduction_29',['Introduction',['../md_index.html',1,'']]] ]; diff --git a/search/searchdata.js b/search/searchdata.js index 803b2bc..34298fd 100644 --- a/search/searchdata.js +++ b/search/searchdata.js @@ -1,7 +1,7 @@ var indexSectionsWithContent = { 0: "abimpru", - 1: "u", + 1: "bu", 2: "ampr", 3: "bru", 4: "i" diff --git a/structVSTAT__NAMESPACE_1_1bivariate__accumulator-members.html b/structVSTAT__NAMESPACE_1_1bivariate__accumulator-members.html new file mode 100644 index 0000000..b284e24 --- /dev/null +++ b/structVSTAT__NAMESPACE_1_1bivariate__accumulator-members.html @@ -0,0 +1,142 @@ + + + + + + + + +vstat: Member List + + + + + + + + + + + + + + + + + + + + +$darkmode + + + + + + +
+
+ + + + + + + + + + +
+
vstat +
+
+ + + + + + +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
bivariate_accumulator< T > Member List
+
+
+ +

This is the complete list of members for bivariate_accumulator< T >, including all inherited members.

+
+
+ + + + diff --git a/structVSTAT__NAMESPACE_1_1bivariate__accumulator.html b/structVSTAT__NAMESPACE_1_1bivariate__accumulator.html new file mode 100644 index 0000000..4d2fa02 --- /dev/null +++ b/structVSTAT__NAMESPACE_1_1bivariate__accumulator.html @@ -0,0 +1,153 @@ + + + + + + + + +vstat: bivariate_accumulator< T > Struct Template Reference + + + + + + + + + + + + + + + + + + + + +$darkmode + + + + + + +
+
+ + + + + + + + + + +
+
vstat +
+
+ + + + + + +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
bivariate_accumulator< T > Struct Template Reference
+
+
+ +

#include <bivariate.hpp>

+

Detailed Description

+

template<typename T>
+struct VSTAT_NAMESPACE::bivariate_accumulator< T >

+ +

Bivariate accumulator object.

+

The documentation for this struct was generated from the following file: +
+
+ + + + diff --git a/structVSTAT__NAMESPACE_1_1bivariate__statistics-members.html b/structVSTAT__NAMESPACE_1_1bivariate__statistics-members.html new file mode 100644 index 0000000..90d10a5 --- /dev/null +++ b/structVSTAT__NAMESPACE_1_1bivariate__statistics-members.html @@ -0,0 +1,142 @@ + + + + + + + + +vstat: Member List + + + + + + + + + + + + + + + + + + + + +$darkmode + + + + + + +
+
+ + + + + + + + + + +
+
vstat +
+
+ + + + + + +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
bivariate_statistics Member List
+
+
+ +

This is the complete list of members for bivariate_statistics, including all inherited members.

+
+
+ + + + diff --git a/structVSTAT__NAMESPACE_1_1bivariate__statistics.html b/structVSTAT__NAMESPACE_1_1bivariate__statistics.html new file mode 100644 index 0000000..451323a --- /dev/null +++ b/structVSTAT__NAMESPACE_1_1bivariate__statistics.html @@ -0,0 +1,150 @@ + + + + + + + + +vstat: bivariate_statistics Struct Reference + + + + + + + + + + + + + + + + + + + + +$darkmode + + + + + + +
+
+ + + + + + + + + + +
+
vstat +
+
+ + + + + + +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
bivariate_statistics Struct Reference
+
+
+ +

#include <bivariate.hpp>

+

Detailed Description

+

Bivariate statistics.

+

The documentation for this struct was generated from the following file: +
+
+ + + + diff --git a/structVSTAT__NAMESPACE_1_1univariate__statistics-members.html b/structVSTAT__NAMESPACE_1_1univariate__statistics-members.html new file mode 100644 index 0000000..a3c1d27 --- /dev/null +++ b/structVSTAT__NAMESPACE_1_1univariate__statistics-members.html @@ -0,0 +1,142 @@ + + + + + + + + +vstat: Member List + + + + + + + + + + + + + + + + + + + + +$darkmode + + + + + + +
+
+ + + + + + + + + + +
+
vstat +
+
+ + + + + + +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
univariate_statistics Member List
+
+
+ +

This is the complete list of members for univariate_statistics, including all inherited members.

+
+
+ + + + diff --git a/structVSTAT__NAMESPACE_1_1univariate__statistics.html b/structVSTAT__NAMESPACE_1_1univariate__statistics.html new file mode 100644 index 0000000..bd2e2f6 --- /dev/null +++ b/structVSTAT__NAMESPACE_1_1univariate__statistics.html @@ -0,0 +1,150 @@ + + + + + + + + +vstat: univariate_statistics Struct Reference + + + + + + + + + + + + + + + + + + + + +$darkmode + + + + + + +
+
+ + + + + + + + + + +
+
vstat +
+
+ + + + + + +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
univariate_statistics Struct Reference
+
+
+ +

#include <univariate.hpp>

+

Detailed Description

+

Univariate statistics.

+

The documentation for this struct was generated from the following file: +
+
+ + + + diff --git a/univariate_8hpp_source.html b/univariate_8hpp_source.html index 758f604..80d9055 100644 --- a/univariate_8hpp_source.html +++ b/univariate_8hpp_source.html @@ -205,43 +205,44 @@
78  T sum_xx{0};
79 };
80 
-
81 struct univariate_statistics {
-
82  double count;
-
83  double sum;
-
84  double ssr;
-
85  double mean;
-
86  double variance;
-
87  double sample_variance;
-
88 
-
89  template <typename T>
-
90  explicit univariate_statistics(T const& accumulator)
-
91  {
-
92  auto [sw, sx, sxx] = accumulator.stats();
-
93  count = sw;
-
94  sum = sx;
-
95  ssr = sxx;
-
96  mean = sx / sw;
-
97  variance = sxx / sw;
-
98  sample_variance = sxx / (sw - 1);
-
99  }
-
100 };
-
101 
-
102 inline auto operator<<(std::ostream& os, univariate_statistics const& stats) -> std::ostream&
-
103 {
-
104  os << "count: \t" << stats.count
-
105  << "\nsum: \t" << stats.sum
-
106  << "\nssr: \t" << stats.ssr
-
107  << "\nmean: \t" << stats.mean
-
108  << "\nvariance: \t" << stats.variance
-
109  << "\nsample variance:\t" << stats.sample_variance
-
110  << "\n";
-
111  return os;
-
112 }
-
113 
-
114 } // namespace VSTAT_NAMESPACE
-
115 
-
116 #endif
+ +
85  double count;
+
86  double sum;
+
87  double ssr;
+
88  double mean;
+
89  double variance;
+
90  double sample_variance;
+
91 
+
92  template <typename T>
+
93  explicit univariate_statistics(T const& accumulator)
+
94  {
+
95  auto [sw, sx, sxx] = accumulator.stats();
+
96  count = sw;
+
97  sum = sx;
+
98  ssr = sxx;
+
99  mean = sx / sw;
+
100  variance = sxx / sw;
+
101  sample_variance = sxx / (sw - 1);
+
102  }
+
103 };
+
104 
+
105 inline auto operator<<(std::ostream& os, univariate_statistics const& stats) -> std::ostream&
+
106 {
+
107  os << "count: \t" << stats.count
+
108  << "\nsum: \t" << stats.sum
+
109  << "\nssr: \t" << stats.ssr
+
110  << "\nmean: \t" << stats.mean
+
111  << "\nvariance: \t" << stats.variance
+
112  << "\nsample variance:\t" << stats.sample_variance
+
113  << "\n";
+
114  return os;
+
115 }
+
116 
+
117 } // namespace VSTAT_NAMESPACE
+
118 
+
119 #endif
Univariate accumulator object.
Definition: univariate.hpp:14
+
Univariate statistics.
Definition: univariate.hpp:84
diff --git a/vstat_8hpp_source.html b/vstat_8hpp_source.html index 15dfcc9..df59d7f 100644 --- a/vstat_8hpp_source.html +++ b/vstat_8hpp_source.html @@ -179,7 +179,7 @@
54 namespace univariate {
66 template<std::floating_point T, std::input_iterator I, typename F = std::identity>
67 requires concepts::arithmetic_projection<F, std::iter_value_t<I>>
-
68 inline auto accumulate(I first, std::sized_sentinel_for<I> auto last, F&& f = F{}) noexcept -> univariate_statistics
+
68 inline auto accumulate(I first, std::sized_sentinel_for<I> auto last, F&& f = F{}) noexcept -> univariate_statistics
69 {
70  using wide = eve::wide<T>;
71  auto constexpr s{ wide::size() };
@@ -214,7 +214,7 @@
100 
113 template<std::floating_point T, std::input_iterator I, std::input_iterator J, typename F = std::identity>
114 requires concepts::arithmetic_projection<F, std::iter_value_t<I>> and std::is_arithmetic_v<std::iter_value_t<J>>
-
115 inline auto accumulate(I first1, std::sized_sentinel_for<I> auto last1, J first2, F&& f = F{}) noexcept -> univariate_statistics
+
115 inline auto accumulate(I first1, std::sized_sentinel_for<I> auto last1, J first2, F&& f = F{}) noexcept -> univariate_statistics
116 {
117  using wide = eve::wide<T>;
118  auto constexpr s{ wide::size() };
@@ -458,8 +458,8 @@
453  sy(*first1);
454  }
455 
-
456  auto const rss = univariate_statistics(sx).sum;
-
457  auto const tss = univariate_statistics(sy).ssr;
+
456  auto const rss = univariate_statistics(sx).sum;
+
457  auto const tss = univariate_statistics(sy).ssr;
458 
459  return tss < std::numeric_limits<double>::epsilon()
460  ? std::numeric_limits<double>::lowest()
@@ -493,8 +493,8 @@
499  sy(*first1, *first3);
500  }
501 
-
502  auto const rss = univariate_statistics(sx).sum;
-
503  auto const tss = univariate_statistics(sy).ssr;
+
502  auto const rss = univariate_statistics(sx).sum;
+
503  auto const tss = univariate_statistics(sy).ssr;
504 
505  return tss < std::numeric_limits<double>::epsilon()
506  ? std::numeric_limits<double>::lowest()
@@ -521,7 +521,7 @@
536  for(; first1 < last1; ++first1, ++first2) {
537  se(eve::sqr(*first1 - *first2));
538  }
-
539  return univariate_statistics(se).mean;
+
539  return univariate_statistics(se).mean;
540 }
541 
551 template<std::floating_point T, std::input_iterator I, std::input_iterator J, std::input_iterator K>
@@ -545,7 +545,7 @@
569  for(; first1 < last1; ++first1, ++first2, ++first3) {
570  se(eve::sqr(*first1 - *first2), *first3);
571  }
-
572  return univariate_statistics(se).mean;
+
572  return univariate_statistics(se).mean;
573 }
574 
584 template<std::floating_point T, std::input_iterator I, std::input_iterator J>
@@ -568,7 +568,7 @@
601  for(; first1 < last1; ++first1, ++first2) {
602  se(eve::sqr(eve::log1p(*first1) - eve::log1p(*first2)));
603  }
-
604  return univariate_statistics(se).mean;
+
604  return univariate_statistics(se).mean;
605 }
606 
616 template<std::floating_point T, std::input_iterator I, std::input_iterator J, std::input_iterator K>
@@ -592,7 +592,7 @@
634  for(; first1 < last1; ++first1, ++first2, ++first3) {
635  se(eve::sqr(eve::log1p(*first1) - eve::log1p(*first2)), *first3);
636  }
-
637  return univariate_statistics(se).mean;
+
637  return univariate_statistics(se).mean;
638 }
639 
649 template<std::floating_point T, std::input_iterator I, std::input_iterator J>
@@ -615,7 +615,7 @@
666  for(; first1 < last1; ++first1, ++first2) {
667  se(eve::abs(*first1 - *first2));
668  }
-
669  return univariate_statistics(se).mean;
+
669  return univariate_statistics(se).mean;
670 }
671 
681 template<std::floating_point T, std::input_iterator I, std::input_iterator J, std::input_iterator K>
@@ -639,7 +639,7 @@
699  for(; first1 < last1; ++first1, ++first2, ++first3) {
700  se(eve::abs(*first1 - *first2), *first3);
701  }
-
702  return univariate_statistics(se).mean;
+
702  return univariate_statistics(se).mean;
703 }
704 
717 template<std::floating_point T, std::input_iterator I, std::input_iterator J>
@@ -664,7 +664,7 @@
736  for(; first1 < last1; ++first1, ++first2) {
737  se(eve::abs(*first1 - *first2) / eve::max(eps, eve::abs(*first1)));
738  }
-
739  return univariate_statistics(se).mean;
+
739  return univariate_statistics(se).mean;
740 }
741 
751 template<std::floating_point T, std::input_iterator I, std::input_iterator J, std::input_iterator K>
@@ -688,7 +688,7 @@
769  for(; first1 < last1; ++first1, ++first2, ++first3) {
770  se(eve::abs(*first1 - *first2), *first3);
771  }
-
772  return univariate_statistics(se).mean;
+
772  return univariate_statistics(se).mean;
773 }
774 
784 template<std::floating_point T, std::input_iterator I, std::input_iterator J>
@@ -713,7 +713,7 @@
803  for(; first1 < last1; ++first1, ++first2) {
804  se(*first2 - *first1 * eve::log(*first2) + eve::log_abs_gamma(T{1} + *first1));
805  }
-
806  return univariate_statistics(se).sum;
+
806  return univariate_statistics(se).sum;
807 }
808 
818 template<std::floating_point T, std::input_iterator I, std::input_iterator J, std::input_iterator K>
@@ -738,7 +738,7 @@
837  for(; first1 < last1; ++first1, ++first2, ++first3) {
838  se(*first2 * *first3 - *first1 * eve::log(*first2 * *first3) + eve::log_abs_gamma(T{1} + *first1));
839  }
-
840  return univariate_statistics(se).sum;
+
840  return univariate_statistics(se).sum;
841 }
842 } // namespace metrics
843 
@@ -753,6 +753,7 @@
auto r2_score(I first1, std::sentinel_for< I > auto last1, J first2, K first3) noexcept -> double
Computes the weighted coefficient of determination .
Definition: vstat.hpp:476
auto mean_absolute_error(I first1, std::sentinel_for< I > auto last1, J first2, K first3) noexcept -> double
Weighted mean absolute error.
Definition: vstat.hpp:682
Univariate accumulator object.
Definition: univariate.hpp:14
+
Univariate statistics.
Definition: univariate.hpp:84