5 # ifndef VCCC_NUMERIC_STDDEV_HPP
6 # define VCCC_NUMERIC_STDDEV_HPP
32 template<
typename InputIterator,
typename T,
63 template<
typename ...Numbers, std::enable_if_t<negation<disjunction<is_iterable<Numbers>...>>
::value,
int> = 0>
80 template<
typename InputIterator>
85 return std::make_pair(avg,
stddev(
first, last, avg));
constexpr VCCC_INLINE_OR_STATIC detail::next_niebloid next
Definition: next.hpp:65
constexpr auto average(InputIterator first, InputIterator last)
get average of iterator values [first, last)
Definition: average.hpp:28
auto stddev(InputIterator first, InputIterator last, T avg)
calculate standard deviation with pre-calculated average on iterators
Definition: stddev.hpp:35
constexpr auto sum(InputIterator first, InputIterator last)
sum of iterator [first, last)
Definition: sum.hpp:57
constexpr auto sum_custom(const UnaryOperation &unary_op, const Arg &arg)
sum of variadic with custom operator
Definition: sum.hpp:99
auto avg_stddev(InputIterator first, InputIterator last)
calculate standard deviation and average
Definition: stddev.hpp:82
constexpr T square(const T &val)
get squared value
Definition: sum.hpp:116
constexpr VCCC_INLINE_OR_STATIC detail::distance_niebloid distance
Definition: distance.hpp:72
typename std::conditional_t< conjunction< std::is_same< Types, float >... >::value, float, double > decay_if_float_t
Definition: lossless_type.hpp:20
Definition: directory.h:12
constexpr VCCC_INLINE_OR_STATIC detail::element_niebloid< 0 > first
Definition: key_value.hpp:34
constexpr VCCC_INLINE_OR_STATIC detail::element_niebloid< 1 > value
Definition: key_value.hpp:35