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 size_t count(batch_bool<T, A> const &x) noexcept Count the number of values set to true in the batch
x
.- Parameters:
x – boolean or batch of boolean
- Returns:
the result of the counting.
-
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.