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

generate_aggregator is very similar to indexed_aggregator, but instead of managing and passing a coordinate to the functor, the functor now manages the argument side of the operation: it acts as a generator. To make this possible, the generator has to hold run-time modifiable state and can't be const like the functors used in the other aggregators, where the functors are 'pure' in a functional programming sense. A 'generator' functor to be used with this body of code is expected to behave in a certain fashion: More...

#include <wielding.h>

Public Types

enum  { channels = functor_type::channels }
 
typedef functor_type::out_type out_type
 
typedef functor_type::out_ele_type out_ele_type
 
typedef functor_type::out_nd_ele_type out_nd_ele_type
 
typedef functor_type::out_v out_v
 
typedef functor_type::out_ele_v out_ele_v
 
typedef functor_type::out_nd_ele_v out_nd_ele_v
 
typedef functor_type::shape_type crd_type
 

Public Member Functions

 generate_aggregator (const functor_type &_functor)
 
void operator() (crd_type crd, int axis, out_type *trg, ic_type stride, ic_type length)
 

Public Attributes

functor_type functor
 

Static Public Attributes

static const size_t vsize = _vsize
 

Detailed Description

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

generate_aggregator is very similar to indexed_aggregator, but instead of managing and passing a coordinate to the functor, the functor now manages the argument side of the operation: it acts as a generator. To make this possible, the generator has to hold run-time modifiable state and can't be const like the functors used in the other aggregators, where the functors are 'pure' in a functional programming sense. A 'generator' functor to be used with this body of code is expected to behave in a certain fashion:

Definition at line 623 of file wielding.h.

Member Typedef Documentation

◆ crd_type

template<size_t _vsize, typename ic_type , class functor_type , typename = std::enable_if < ( _vsize > 1 ) >>
typedef functor_type::shape_type wielding::generate_aggregator< _vsize, ic_type, functor_type, typename >::crd_type

Definition at line 646 of file wielding.h.

◆ out_ele_type

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

Definition at line 632 of file wielding.h.

◆ out_ele_v

template<size_t _vsize, typename ic_type , class functor_type , typename = std::enable_if < ( _vsize > 1 ) >>
typedef functor_type::out_ele_v wielding::generate_aggregator< _vsize, ic_type, functor_type, typename >::out_ele_v

Definition at line 635 of file wielding.h.

◆ out_nd_ele_type

template<size_t _vsize, typename ic_type , class functor_type , typename = std::enable_if < ( _vsize > 1 ) >>
typedef functor_type::out_nd_ele_type wielding::generate_aggregator< _vsize, ic_type, functor_type, typename >::out_nd_ele_type

Definition at line 633 of file wielding.h.

◆ out_nd_ele_v

template<size_t _vsize, typename ic_type , class functor_type , typename = std::enable_if < ( _vsize > 1 ) >>
typedef functor_type::out_nd_ele_v wielding::generate_aggregator< _vsize, ic_type, functor_type, typename >::out_nd_ele_v

Definition at line 636 of file wielding.h.

◆ out_type

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

Definition at line 631 of file wielding.h.

◆ out_v

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

Definition at line 634 of file wielding.h.

Member Enumeration Documentation

◆ anonymous enum

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

Definition at line 638 of file wielding.h.

Constructor & Destructor Documentation

◆ generate_aggregator()

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

Definition at line 652 of file wielding.h.

Member Function Documentation

◆ operator()()

template<size_t _vsize, typename ic_type , class functor_type , typename = std::enable_if < ( _vsize > 1 ) >>
void wielding::generate_aggregator< _vsize, ic_type, functor_type, typename >::operator() ( crd_type  crd,
int  axis,
out_type trg,
ic_type  stride,
ic_type  length 
)
inline

Definition at line 764 of file wielding.h.

Member Data Documentation

◆ functor

template<size_t _vsize, typename ic_type , class functor_type , typename = std::enable_if < ( _vsize > 1 ) >>
functor_type wielding::generate_aggregator< _vsize, ic_type, functor_type, typename >::functor

Definition at line 642 of file wielding.h.

◆ vsize

template<size_t _vsize, typename ic_type , class functor_type , typename = std::enable_if < ( _vsize > 1 ) >>
const size_t wielding::generate_aggregator< _vsize, ic_type, functor_type, typename >::vsize = _vsize
static

Definition at line 625 of file wielding.h.


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