vspline 1.1.0
Generic C++11 Code for Uniform B-Splines
Public Types | Public Member Functions | Public Attributes | List of all members
wielding::coupled_aggregator< vsz, ic_type, functor_type, typename > Struct Template Reference

an aggregator for separate - possibly different - source and target. If source and target are in fact different, the inner functor will read data from source, process them and then write them to target. If source and target are the same, the operation will be in-place, but not explicitly so. vspline uses this style of two-argument functor, and this is the aggregator we use for vspline's array-based transforms. The code in this template will only be used for vectorized operation, If vectorization is not used, only the specialization for vsize == 1 below is used. More...

#include <wielding.h>

Public Types

enum  { dim_in = functor_type::dim_in }
 
enum  { dim_out = functor_type::dim_out }
 
typedef functor_type::in_type in_type
 
typedef functor_type::in_ele_type in_ele_type
 
typedef functor_type::out_type out_type
 
typedef functor_type::out_ele_type out_ele_type
 
typedef functor_type::in_v in_v
 
typedef functor_type::out_v out_v
 

Public Member Functions

 coupled_aggregator (const functor_type &_functor)
 
void operator() (const in_type *src, ic_type in_stride, out_type *trg, ic_type out_stride, ic_type length)
 

Public Attributes

const functor_type functor
 

Detailed Description

template<size_t vsz, typename ic_type, class functor_type, typename = std::enable_if < ( vsz > 1 ) >>
struct wielding::coupled_aggregator< vsz, ic_type, functor_type, typename >

an aggregator for separate - possibly different - source and target. If source and target are in fact different, the inner functor will read data from source, process them and then write them to target. If source and target are the same, the operation will be in-place, but not explicitly so. vspline uses this style of two-argument functor, and this is the aggregator we use for vspline's array-based transforms. The code in this template will only be used for vectorized operation, If vectorization is not used, only the specialization for vsize == 1 below is used.

Definition at line 923 of file wielding.h.

Member Typedef Documentation

◆ in_ele_type

template<size_t vsz, typename ic_type , class functor_type , typename = std::enable_if < ( vsz > 1 ) >>
typedef functor_type::in_ele_type wielding::coupled_aggregator< vsz, ic_type, functor_type, typename >::in_ele_type

Definition at line 926 of file wielding.h.

◆ in_type

template<size_t vsz, typename ic_type , class functor_type , typename = std::enable_if < ( vsz > 1 ) >>
typedef functor_type::in_type wielding::coupled_aggregator< vsz, ic_type, functor_type, typename >::in_type

Definition at line 925 of file wielding.h.

◆ in_v

template<size_t vsz, typename ic_type , class functor_type , typename = std::enable_if < ( vsz > 1 ) >>
typedef functor_type::in_v wielding::coupled_aggregator< vsz, ic_type, functor_type, typename >::in_v

Definition at line 938 of file wielding.h.

◆ out_ele_type

template<size_t vsz, typename ic_type , class functor_type , typename = std::enable_if < ( vsz > 1 ) >>
typedef functor_type::out_ele_type wielding::coupled_aggregator< vsz, ic_type, functor_type, typename >::out_ele_type

Definition at line 932 of file wielding.h.

◆ out_type

template<size_t vsz, typename ic_type , class functor_type , typename = std::enable_if < ( vsz > 1 ) >>
typedef functor_type::out_type wielding::coupled_aggregator< vsz, ic_type, functor_type, typename >::out_type

Definition at line 931 of file wielding.h.

◆ out_v

template<size_t vsz, typename ic_type , class functor_type , typename = std::enable_if < ( vsz > 1 ) >>
typedef functor_type::out_v wielding::coupled_aggregator< vsz, ic_type, functor_type, typename >::out_v

Definition at line 939 of file wielding.h.

Member Enumeration Documentation

◆ anonymous enum

template<size_t vsz, typename ic_type , class functor_type , typename = std::enable_if < ( vsz > 1 ) >>
anonymous enum
Enumerator
dim_in 

Definition at line 928 of file wielding.h.

◆ anonymous enum

template<size_t vsz, typename ic_type , class functor_type , typename = std::enable_if < ( vsz > 1 ) >>
anonymous enum
Enumerator
dim_out 

Definition at line 929 of file wielding.h.

Constructor & Destructor Documentation

◆ coupled_aggregator()

template<size_t vsz, typename ic_type , class functor_type , typename = std::enable_if < ( vsz > 1 ) >>
wielding::coupled_aggregator< vsz, ic_type, functor_type, typename >::coupled_aggregator ( const functor_type &  _functor)
inline

Definition at line 941 of file wielding.h.

Member Function Documentation

◆ operator()()

template<size_t vsz, typename ic_type , class functor_type , typename = std::enable_if < ( vsz > 1 ) >>
void wielding::coupled_aggregator< vsz, ic_type, functor_type, typename >::operator() ( const in_type src,
ic_type  in_stride,
out_type trg,
ic_type  out_stride,
ic_type  length 
)
inline

Definition at line 945 of file wielding.h.

Member Data Documentation

◆ functor

template<size_t vsz, typename ic_type , class functor_type , typename = std::enable_if < ( vsz > 1 ) >>
const functor_type wielding::coupled_aggregator< vsz, ic_type, functor_type, typename >::functor

Definition at line 934 of file wielding.h.


The documentation for this struct was generated from the following file: