4#ifndef _Stroika_Foundation_Math_Statistics_h_
5#define _Stroika_Foundation_Math_Statistics_h_ 1
7#include "Stroika/Foundation/StroikaPreComp.h"
9#include "Stroika/Foundation/Common/Common.h"
40namespace Stroika::Foundation::Math {
54 template <
typename RESULT_TYPE, input_iterator ITERATOR_OF_T, sentinel_for<ITERATOR_OF_T> ITERATOR_OF_T2>
55 RESULT_TYPE
Mean (
const ITERATOR_OF_T& start, ITERATOR_OF_T2&& end);
56 template <input_iterator ITERATOR_OF_T, sentinel_for<ITERATOR_OF_T> ITERATOR_OF_T2>
57 auto Mean (
const ITERATOR_OF_T& start, ITERATOR_OF_T2&& end) ->
typename iterator_traits<ITERATOR_OF_T>::value_type;
58 template <ranges::range CONTAINER_OF_T>
59 auto Mean (
const CONTAINER_OF_T& container) ->
typename CONTAINER_OF_T::value_type;
78 template <
typename RESULT_TYPE, input_iterator ITERATOR_OF_T, sentinel_for<ITERATOR_OF_T> ITERATOR_OF_T2,
79 Common::IInOrderComparer<RESULT_TYPE> INORDER_COMPARE_FUNCTION = less<RESULT_TYPE>>
80 RESULT_TYPE
Median (
const ITERATOR_OF_T& start, ITERATOR_OF_T2&& end, INORDER_COMPARE_FUNCTION&& compare = {});
81 template <input_iterator ITERATOR_OF_T, sentinel_for<ITERATOR_OF_T> ITERATOR_OF_T2,
82 Common::IInOrderComparer<
typename iterator_traits<ITERATOR_OF_T>::value_type> INORDER_COMPARE_FUNCTION = less<
typename iterator_traits<ITERATOR_OF_T>::value_type>>
83 auto Median (
const ITERATOR_OF_T& start, ITERATOR_OF_T2&& end, INORDER_COMPARE_FUNCTION&& compare = {}) ->
84 typename iterator_traits<ITERATOR_OF_T>::value_type;
85 template <ranges::range CONTAINER_OF_T, Common::IInOrderComparer<
typename CONTAINER_OF_T::value_type> INORDER_COMPARE_FUNCTION = less<
typename CONTAINER_OF_T::value_type>>
86 auto Median (
const CONTAINER_OF_T& container, INORDER_COMPARE_FUNCTION&& compare = {}) ->
typename CONTAINER_OF_T::value_type;
102 template <
typename RESULT_TYPE, input_iterator ITERATOR_OF_T, sentinel_for<ITERATOR_OF_T> ITERATOR_OF_T2>
103 RESULT_TYPE
StandardDeviation (
const ITERATOR_OF_T& start, ITERATOR_OF_T2&& end);
104 template <input_iterator ITERATOR_OF_T, sentinel_for<ITERATOR_OF_T> ITERATOR_OF_T2>
105 auto StandardDeviation (
const ITERATOR_OF_T& start, ITERATOR_OF_T2&& end) ->
typename iterator_traits<ITERATOR_OF_T>::value_type;
106 template <ranges::range CONTAINER_OF_T>
107 auto StandardDeviation (
const CONTAINER_OF_T& container) ->
typename CONTAINER_OF_T::value_type;
113 template <
typename T>
119 optional<T> fStandardDeviation;
125 template <
typename T, input_iterator ITERATOR_OF_T, sentinel_for<ITERATOR_OF_T> ITERATOR_OF_T2>
127 template <ranges::range CONTAINER_OF_T>
137#include "Statistics.inl"
RESULT_TYPE StandardDeviation(const ITERATOR_OF_T &start, ITERATOR_OF_T2 &&end)
Alias: sd, standard-deviation, stddev.
CommonStatistics< T > ComputeCommonStatistics(const ITERATOR_OF_T &start, ITERATOR_OF_T2 &&end)
handy aggregation of several common random-variable statistics/measurements.
RESULT_TYPE Mean(const ITERATOR_OF_T &start, ITERATOR_OF_T2 &&end)
Mean (average) of a collection of numbers computed.
RESULT_TYPE Median(const ITERATOR_OF_T &start, ITERATOR_OF_T2 &&end, INORDER_COMPARE_FUNCTION &&compare={})
Median of a collection of numbers computed.