Class expression_reduce¶
class expression_reduce<Tout, Dims, Twork, Tin, ReduceFn, TransformFn, FinalFn> base¶
template <typename Tout, index_t Dims, typename Twork, typename Tin, typename ReduceFn, typename TransformFn,
typename FinalFn>
struct expression_reduce : public expression_traits_defaults { … } Expression that reduces an input expression to a single value.
| Tout | Return type after the finalizer. |
| Dims | Dimensionality of the input expression. |
| Twork | Working type used for the accumulator. |
| Tin | Input element type. |
| ReduceFn | Binary reduction functor. |
| TransformFn | Unary transform applied to each input element before reduction. |
| FinalFn | Finalizer applied to the accumulated value. |
typedef value_type ¶
using value_type = Tin Fully qualified name: kfr::expression_reduce<Tout, Dims, Twork, Tin, ReduceFn, TransformFn, FinalFn>::value_type
Declared at base/reduce.hpp:110
variable dims ¶
constexpr static size_t dims = Dims Fully qualified name: kfr::expression_reduce<Tout, Dims, Twork, Tin, ReduceFn, TransformFn, FinalFn>::dims
Declared at base/reduce.hpp:111
function get_shape(const expression_reduce<Tout, Dims, Twork, Tin, ReduceFn, TransformFn, FinalFn> &) ¶
constexpr static shape<dims> get_shape(const expression_reduce&) { … } Fully qualified name: kfr::expression_reduce<Tout, Dims, Twork, Tin, ReduceFn, TransformFn, FinalFn>::get_shape(const expression_reduce<Tout, Dims, Twork, Tin, ReduceFn, TransformFn, FinalFn> &)
Declared at base/reduce.hpp:112
function get_shape() ¶
constexpr static shape<dims> get_shape() { … } Fully qualified name: kfr::expression_reduce<Tout, Dims, Twork, Tin, ReduceFn, TransformFn, FinalFn>::get_shape()
Declared at base/reduce.hpp:113
variable width ¶
constexpr static size_t width = vector_width<Tin> * bitness_const(1, 2) Fully qualified name: kfr::expression_reduce<Tout, Dims, Twork, Tin, ReduceFn, TransformFn, FinalFn>::width
Declared at base/reduce.hpp:115
constructor expression_reduce<Tout, Dims, Twork, Tin, ReduceFn, TransformFn, FinalFn>(ReduceFn, TransformFn, FinalFn) ¶
expression_reduce(ReduceFn reducefn, TransformFn transformfn, FinalFn finalfn) Constructs the reducer.
| reducefn | Binary reduction functor. |
| transformfn | Unary transform applied to each input element. |
| finalfn | Finalizer applied to the accumulated value. |
Fully qualified name: kfr::expression_reduce<Tout, Dims, Twork, Tin, ReduceFn, TransformFn, FinalFn>::expression_reduce<Tout, Dims, Twork, Tin, ReduceFn, TransformFn, FinalFn>(ReduceFn, TransformFn, FinalFn)
Declared at base/reduce.hpp:123
function get() ¶
Returns the reduced value.
Horizontally reduces the internal accumulator vector and applies the finalizer.
| The final reduced value. |
Fully qualified name: kfr::expression_reduce<Tout, Dims, Twork, Tin, ReduceFn, TransformFn, FinalFn>::get()
Declared at base/reduce.hpp:135
function set_elements(expression_reduce<Tout, Dims, Twork, Tin, ReduceFn, TransformFn, FinalFn> &, shape<Dims>, axis_params<VecAxis, N>, const std::type_identity_t<vec<Tin, N>> &) ¶
template <size_t N, index_t VecAxis>
friend KFR_INTRINSIC void set_elements(expression_reduce& self, shape<Dims>, axis_params<VecAxis, N>,
const std::type_identity_t<vec<Tin, N>>& x) Fully qualified name: kfr::expression_reduce<Tout, Dims, Twork, Tin, ReduceFn, TransformFn, FinalFn>::set_elements(expression_reduce<Tout, Dims, Twork, Tin, ReduceFn, TransformFn, FinalFn> &, shape<Dims>, axis_params<VecAxis, N>, const std::type_identity_t<vec<Tin, N>> &)
Declared at base/reduce.hpp:141
function reset() ¶
void reset() Fully qualified name: kfr::expression_reduce<Tout, Dims, Twork, Tin, ReduceFn, TransformFn, FinalFn>::reset()
Declared at base/reduce.hpp:149
function process(const vec<Tin, width> &) ¶
Fully qualified name: kfr::expression_reduce<Tout, Dims, Twork, Tin, ReduceFn, TransformFn, FinalFn>::process(const vec<Tin, width> &)
Declared at base/reduce.hpp:150
function process(const vec<Tin, N> &) ¶
template <size_t N>
requires(N > width)
KFR_MEM_INTRINSIC void process(const vec<Tin, N>& x) const Fully qualified name: kfr::expression_reduce<Tout, Dims, Twork, Tin, ReduceFn, TransformFn, FinalFn>::process(const vec<Tin, N> &)
Declared at base/reduce.hpp:164
variable counter ¶
mutable size_t counter Fully qualified name: kfr::expression_reduce<Tout, Dims, Twork, Tin, ReduceFn, TransformFn, FinalFn>::counter
Declared at base/reduce.hpp:170
variable reducefn ¶
ReduceFn reducefn Fully qualified name: kfr::expression_reduce<Tout, Dims, Twork, Tin, ReduceFn, TransformFn, FinalFn>::reducefn
Declared at base/reduce.hpp:171
variable transformfn ¶
TransformFn transformfn Fully qualified name: kfr::expression_reduce<Tout, Dims, Twork, Tin, ReduceFn, TransformFn, FinalFn>::transformfn
Declared at base/reduce.hpp:172
variable finalfn ¶
FinalFn finalfn Fully qualified name: kfr::expression_reduce<Tout, Dims, Twork, Tin, ReduceFn, TransformFn, FinalFn>::finalfn
Declared at base/reduce.hpp:173
variable value ¶
mutable vec<Twork, width> value Fully qualified name: kfr::expression_reduce<Tout, Dims, Twork, Tin, ReduceFn, TransformFn, FinalFn>::value
Declared at base/reduce.hpp:174
Fully qualified name: kfr::expression_reduce<Tout, Dims, Twork, Tin, ReduceFn, TransformFn, FinalFn>
Declared at base/reduce.hpp:108