◆ average
Callable object computing the average of multiple values. Required header: Members Functions
template< value T, value U > auto operator()( T x, U y ) const noexcept requires compatible< T, U >;
requires (compatiblevalues< T, Ts > && ...);
Definition: value.hpp:83 Parameters
Return value For two parameters half the sum of For more than two parameters only floating entries are allowed and overflow is avoided. The result type is the common compatible type of the parameters.
auto operator[]( conditional_expression auto cond ) const noexcept;
Higher-order function generating a masked version of eve::average Parameters
Return value A Callable object so that the expression Supported decorators
ExampleSee it live on Compiler Explorer #include <eve/function/average.hpp>
#include <eve/literals.hpp>
#include <eve/wide.hpp>
#include <vector>
#include <iostream>
float mean(std::vector<float> ary) {
float avg = 0;
int t = 1;
for (float x : ary) {
avg += (x - avg) / t;
++t;
}
return avg;
}
int main()
{
using w_t = eve::wide<std::uint32_t, eve::fixed<4>>;
w_t pi = {3, 2, 3, 3}, qi = {4, 1, 1, ~0};
std::cout << "---- simd" << '\n'
<< " <- qi = " << qi << '\n'
std::uint32_t xi = 3, yi = 4;
std::cout << "---- scalar" << '\n'
<< " xi = " << xi << '\n'
<< " yi = " << yi << '\n'
using w_ft = eve::wide<float, eve::fixed<4>>;
w_ft pf = {3, 4, 3, 10}, qf = {4, 1, 1, 15};;
std::cout << "---- multi" << '\n'
<< " <- pf = " << pf << '\n'
<< " <- qf = " << qf << '\n'
return 0;
}
constexpr callable_average_ average Callable object computing the average of multiple values. Definition: average.hpp:100 |