Itoyori  v0.0.1
ityr::reducer Namespace Reference

Classes

struct  default_identity_provider
 
struct  monoid
 
struct  one
 
struct  lowest
 
struct  highest
 
struct  min_functor
 
struct  min_functor< void >
 
struct  max_functor
 
struct  max_functor< void >
 
struct  minmax
 
struct  reducer_generic
 
struct  histogram
 
struct  vec_concat
 
struct  vec_element_wise
 

Typedefs

template<typename T >
using plus = monoid< T, std::plus<> >
 
template<typename T >
using multiplies = monoid< T, std::multiplies<>, one< T > >
 
template<typename T >
using min = monoid< T, min_functor<>, highest< T > >
 
template<typename T >
using max = monoid< T, max_functor<>, lowest< T > >
 
using logical_and = monoid< bool, std::logical_and<>, std::true_type >
 
using logical_or = monoid< bool, std::logical_or<>, std::false_type >
 
template<typename T >
using vec_plus = vec_element_wise< T, std::plus<> >
 
template<typename T >
using vec_multiplies = vec_element_wise< T, std::multiplies<> >
 
template<typename T >
using vec_min = vec_element_wise< T, min_functor<> >
 
template<typename T >
using vec_max = vec_element_wise< T, max_functor<> >
 

Functions

template<typename... Fns>
decltype(auto) make_reducer (Fns &&... fns)
 

Typedef Documentation

◆ logical_and

using ityr::reducer::logical_and = typedef monoid<bool, std::logical_and<>, std::true_type>

◆ logical_or

using ityr::reducer::logical_or = typedef monoid<bool, std::logical_or<> , std::false_type>

◆ max

template<typename T >
using ityr::reducer::max = typedef monoid<T, max_functor<>, lowest<T> >

◆ min

template<typename T >
using ityr::reducer::min = typedef monoid<T, min_functor<>, highest<T> >

◆ multiplies

template<typename T >
using ityr::reducer::multiplies = typedef monoid<T, std::multiplies<>, one<T> >

◆ plus

template<typename T >
using ityr::reducer::plus = typedef monoid<T, std::plus<> >

◆ vec_max

template<typename T >
using ityr::reducer::vec_max = typedef vec_element_wise<T, max_functor<> >

◆ vec_min

template<typename T >
using ityr::reducer::vec_min = typedef vec_element_wise<T, min_functor<> >

◆ vec_multiplies

template<typename T >
using ityr::reducer::vec_multiplies = typedef vec_element_wise<T, std::multiplies<> >

◆ vec_plus

template<typename T >
using ityr::reducer::vec_plus = typedef vec_element_wise<T, std::plus<> >

Function Documentation

◆ make_reducer()

template<typename... Fns>
decltype(auto) ityr::reducer::make_reducer ( Fns &&...  fns)
inline