Reduction operators¶
generic batch reduction |
|
sum of each batch element |
|
max of the batch elements |
|
min of the batch elements |
|
horizontal sum across batches |
-
template<class T, class A>
inline batch<T, A> haddp(batch<T, A> const *row) noexcept¶ Parallel horizontal addition: adds the scalars of each batch in the array pointed by
row
and store them in a returned batch.- Parameters
row – an array of
N
batches- Returns
the result of the reduction.
-
template<class T, class A, class F>
inline T reduce(F &&f, batch<T, A> const &x) noexcept¶ Generic reducer using only batch operations.
- Parameters
f – reducing function, accepting
batch ()(batch, batch)
x – batch involved in the reduction
- Returns
the result of the reduction, as a scalar.
-
template<class T, class A>
inline T reduce_add(batch<T, A> const &x) noexcept¶ Adds all the scalars of the batch
x
.- Parameters
x – batch involved in the reduction
- Returns
the result of the reduction.