$darkmode
vstat
Univariate statistics

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
 
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
 
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
 
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
 

Detailed Description

Methods for univariate statistics.

Function Documentation

◆ accumulate() [1/4]

requires concepts::arithmetic_projection<F, std::iter_value_t<I> > auto VSTAT_NAMESPACE::univariate::accumulate ( first,
std::sized_sentinel_for< I > auto  last,
F &&  f = F{} 
) -> univariate_statistics
inlinenoexcept

Accumulates a sequence of (projected) values.

Template Parameters
TThe scalar value type underlying the eve::wide<T> SIMD type used to compute the stats.
Parameters
firstThe begin iterator for the first sequence
lastThe end iterator for the first sequence
fA projection mapping std::iter_value_t<I> to a scalar value

◆ accumulate() [2/4]

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 VSTAT_NAMESPACE::univariate::accumulate ( first1,
std::sized_sentinel_for< I > auto  last1,
first2,
BinaryOp &&  op = BinaryOp{},
F1 &&  f1 = F1{},
F2 &&  f2 = F2{} 
) -> univariate_statistics
inlinenoexcept

Accumulates over the projected values from applying BinaryOp on the input sequences.

Template Parameters
TThe scalar value type underlying the eve::wide<T> SIMD type used to compute the stats
BinaryOpBinary projection \(op(a,b) \to c\)
F1Unary projection \(f(x_1) \to a\)
F2Unary projection \(f(x_2) \to b\)
Parameters
first1The begin iterator for the first sequence
last1The end iterator for the first sequence
first2The begin iterator for the second sequence
opA binary projection mapping a tuple \((f_1(\cdot), f_2(\cdot))\) to a scalar value
f1A projection mapping std::iter_value_t<I> to a scalar value
f2A projection mapping std::iter_value_t<J> to a scalar value

◆ accumulate() [3/4]

requires concepts::arithmetic_projection<F, std::iter_value_t<I> > and std::is_arithmetic_v<std::iter_value_t<J> > auto VSTAT_NAMESPACE::univariate::accumulate ( first1,
std::sized_sentinel_for< I > auto  last1,
first2,
F &&  f = F{} 
) -> univariate_statistics
inlinenoexcept

Accumulates a sequence of (projected) values.

Template Parameters
TThe scalar value type underlying the eve::wide<T> SIMD type used to compute the stats.
Parameters
first1The begin iterator for the first sequence
last1The end iterator for the first sequence
first2The begin iterator for the second (weights) sequence
fA projection mapping std::iter_value_t<I> to a scalar value

◆ accumulate() [4/4]

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 VSTAT_NAMESPACE::univariate::accumulate ( first1,
std::sized_sentinel_for< I > auto  last1,
first2,
first3,
BinaryOp &&  op = BinaryOp{},
F1 &&  f1 = F1{},
F2 &&  f2 = F2{} 
) -> univariate_statistics
inlinenoexcept

Accumulates over the projected values from applying BinaryOp on the input sequences, with weights.

Template Parameters
TThe scalar value type underlying the eve::wide<T> SIMD type used to compute the stats
BinaryOpBinary projection \(op(a,b) \to c\)
F1Unary projection \(f(x_1) \to a\)
F2Unary projection \(f(x_2) \to b\)
Parameters
first1The begin iterator for the first sequence
last1The end iterator for the first sequence
first2The begin iterator for the second sequence
first3The begin iterator for the third sequence (weights)
opA binary projection mapping a tuple \((f_1(\bullet), f_2(\bullet))\) to a scalar value
f1A projection mapping std::iter_value_t<I> to a scalar value
f2A projection mapping std::iter_value_t<J> to a scalar value