Skip to content

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.

Template parameters
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.

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

Returns
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

This file was generated by cxxdox, a C++ documentation generator based on MkDocs Material and libclang.