20static constexpr array<MathSize, 100> T_VALUES{
131 [[nodiscard]] MathSize
min() const noexcept
139 [[nodiscard]] MathSize
max() const noexcept
147 [[nodiscard]] MathSize
median() const noexcept
155 [[nodiscard]] MathSize
mean() const noexcept
179 [[nodiscard]]
size_t n() const noexcept
188 [[nodiscard]] MathSize
percentile(
const uint8_t i)
const noexcept
190#ifdef DEBUG_STATISTICS
191 logging::check_fatal(
static_cast<size_t>(i) >=
percentiles_.size(),
192 "Invalid percentile %d requested",
249 const auto total_sum = std::accumulate(values.begin(),
252 [](
const MathSize t,
const MathSize x) { return t + x; });
256 const auto pos = std::min(
n_ - 1,
257 static_cast<size_t>(truncl(
262 const auto total = std::accumulate(values.begin(),
265 [
this](
const MathSize t,
const MathSize x) { return t + pow_int<2>(x - mean_); });
268#ifdef DEBUG_STATISTICS
280 const auto result = T_VALUES[std::min(T_VALUES.size(),
n()) - 1]
290 [[nodiscard]]
bool isConfident(
const MathSize relative_error)
const noexcept
293 const auto re = relative_error / (1 + relative_error);
305 const MathSize relative_error)
const
307 const auto re = relative_error / (1 + relative_error);
308 const std::function<MathSize(
size_t)> fct = [
this](
const size_t i)
noexcept {
309 return T_VALUES[std::min(T_VALUES.size(), i) - 1]
312 const auto cur_runs =
n();
313 return binary_find_checked(cur_runs, 10 * cur_runs, re, fct) - cur_runs;
Provides statistics calculation for vectors of values.
Definition Statistics.h:125
MathSize confidenceInterval90() const
90% Confidence Interval
Definition Statistics.h:209
MathSize studentsT() const noexcept
Calculate Student's T value.
Definition Statistics.h:278
MathSize sample_variance_
Sample variance.
Definition Statistics.h:352
MathSize confidenceInterval80() const
80% Confidence Interval
Definition Statistics.h:201
MathSize percentile(const uint8_t i) const noexcept
Value for given percentile.
Definition Statistics.h:188
MathSize max_
Maximum value.
Definition Statistics.h:336
Statistics(vector< MathSize > values)
Calculates statistics on a vector of values.
Definition Statistics.h:241
array< MathSize, 101 > percentiles_
Array of all integer percentile values.
Definition Statistics.h:356
MathSize confidenceInterval98() const
98% Confidence Interval
Definition Statistics.h:225
MathSize max() const noexcept
Maximum value.
Definition Statistics.h:139
bool isConfident(const MathSize relative_error) const noexcept
Whether or not we have less than the relative error and can be confident in the results.
Definition Statistics.h:290
MathSize confidenceInterval99() const
99% Confidence Interval
Definition Statistics.h:233
MathSize min_
Minimum value.
Definition Statistics.h:332
size_t n_
Number of values.
Definition Statistics.h:328
MathSize confidenceInterval(const MathSize z) const
Calculate Confidence Interval for given z value.
Definition Statistics.h:321
MathSize confidenceInterval95() const
95% Confidence Interval
Definition Statistics.h:217
MathSize median() const noexcept
Median value.
Definition Statistics.h:147
MathSize standard_deviation_
Standard Deviation.
Definition Statistics.h:348
MathSize mean_
Mean (average) value.
Definition Statistics.h:340
MathSize sampleVariance() const noexcept
Sample Variance.
Definition Statistics.h:171
MathSize median_
Median value.
Definition Statistics.h:344
MathSize min() const noexcept
Minimum value.
Definition Statistics.h:131
size_t n() const noexcept
Number of data points in the set.
Definition Statistics.h:179
MathSize mean() const noexcept
Mean (average) value.
Definition Statistics.h:155
MathSize standardDeviation() const noexcept
Standard Deviation.
Definition Statistics.h:163
size_t runsRequired(const MathSize relative_error) const
Estimate how many more runs are required to achieve desired confidence.
Definition Statistics.h:303