9#ifndef DRYCHEM_COMMON_UTILITIES_INCLUDE_COMMON_UTILS_MATH_STATISTICS_STATISTICS_HPP
10#define DRYCHEM_COMMON_UTILITIES_INCLUDE_COMMON_UTILS_MATH_STATISTICS_STATISTICS_HPP
28 template<
typename T,
typename = std::enable_if_t<std::is_arithmetic_v<T>>>
31 return static_cast<int>(std::floor(std::log10(value)));
44 template<
typename T,
typename = std::enable_if_t<std::is_arithmetic_v<T>>>
45 constexpr long double findAbsoluteError(T expectedValue, std::size_t significantFigures)
noexcept
60 template<typename Iterator, typename T = typename std::iterator_traits<Iterator>::value_type,
61 typename = std::enable_if_t<std::is_default_constructible_v<T>>>
65 T result {std::accumulate(x_begin, x_end, init) / (x_end - x_begin)};
82 template<typename Iterator, typename T = typename std::iterator_traits<Iterator>::value_type,
83 typename = std::enable_if_t<std::is_default_constructible_v<T>>>
86 using Txx =
decltype(*x_begin * *x_begin);
88 std::ptrdiff_t x_size {x_end - x_begin};
93 Txx result = std::accumulate(x_begin, x_end, init,
94 [&average](Txx res, T x) {
return std::move(res) + ((x - average) * (x - average)); }) / (x_size - 1);
Definition backwardsDifferenceMethod.hpp:20
constexpr T calculateAverage(Iterator x_begin, Iterator x_end)
Definition statistics.hpp:62
constexpr long double findAbsoluteError(T expectedValue, std::size_t significantFigures) noexcept
Definition statistics.hpp:45
constexpr decltype(auto) calculateVariance(Iterator x_begin, Iterator x_end)
Definition statistics.hpp:84
constexpr int findOrderOfMagnitude(T value) noexcept
Definition statistics.hpp:29