vspline 1.1.0
Generic C++11 Code for Uniform B-Splines
Classes | Public Types | Public Member Functions | Public Attributes | List of all members
vspline::map_functor< nd_rc_type, _vsize, gate_types > Struct Template Reference

finally we define class mapper which is initialized with a set of gate objects (of arbitrary type) which are applied to each component of an incoming nD coordinate in turn. The trickery with the variadic template argument list is necessary, because we want to be able to combine arbitrary gate types (which have distinct types) to make the mapper as efficient as possible. the only requirement for a gate type is that it has to provide the necessary eval() functions. More...

#include <map.h>

Inheritance diagram for vspline::map_functor< nd_rc_type, _vsize, gate_types >:
vspline::unary_functor< nd_rc_type, nd_rc_type, _vsize > vspline::unary_functor_tag< _vsize >

Classes

struct  _map
 
struct  _map< 0, 1, coordinate_type >
 
struct  _map< 0, dimension, nd_coordinate_type >
 

Public Types

enum  { vsize = _vsize }
 
enum  { dimension = vigra::ExpandElementResult < nd_rc_type > :: size }
 
typedef vspline::unary_functor< nd_rc_type, nd_rc_type, _vsize > base_type
 
typedef base_type::in_type in_type
 
typedef base_type::out_type out_type
 
typedef std::tuple< gate_types... > mvec_type
 
- Public Types inherited from vspline::unary_functor< nd_rc_type, nd_rc_type, _vsize >
enum  
 
enum  
 
enum  
 
typedef nd_rc_type in_type
 
typedef nd_rc_type out_type
 
typedef vspline::vector_traits< nd_rc_type >::ele_type in_ele_type
 
typedef vspline::vector_traits< nd_rc_type >::ele_type out_ele_type
 
typedef vigra::TinyVector< in_ele_type, dim_inin_nd_ele_type
 
typedef vigra::TinyVector< out_ele_type, dim_outout_nd_ele_type
 
typedef vector_traits< nd_rc_type, vsize >::ele_v in_ele_v
 a simdized type of the elementary type of result_type, which is used for coefficients and results. this is fixed via the traits class vector_traits (in vector.h). Note how we derive this type using vsize from the template argument, not what vspline::vector_traits deems appropriate for ele_type - though both numbers will be the same in most cases. More...
 
typedef vector_traits< nd_rc_type, vsize >::ele_v out_ele_v
 
typedef vector_traits< nd_rc_type, vsize >::nd_ele_v in_nd_ele_v
 
typedef vector_traits< nd_rc_type, vsize >::nd_ele_v out_nd_ele_v
 
typedef vector_traits< nd_rc_type, vsize >::type in_v
 vectorized in_type and out_type. vspline::vector_traits supplies these types so that multidimensional/multichannel data come as vigra::TinyVectors, while 'singular' data won't be made into TinyVectors of one element. More...
 
typedef vector_traits< nd_rc_type, vsize >::type out_v
 
typedef vector_traits< int, vsize >::ele_v ic_v
 vsize wide vector of ints, used for gather/scatter indexes More...
 

Public Member Functions

 map_functor (gate_types ... args)
 
 map_functor (const mvec_type &_mvec)
 
template<class in_type , class out_type >
void eval (const in_type &in, out_type &out) const
 

Public Attributes

const mvec_type mvec
 

Additional Inherited Members

- Static Public Attributes inherited from vspline::unary_functor< nd_rc_type, nd_rc_type, _vsize >
static const bool has_capped_eval
 

Detailed Description

template<typename nd_rc_type, size_t _vsize, class ... gate_types>
struct vspline::map_functor< nd_rc_type, _vsize, gate_types >

finally we define class mapper which is initialized with a set of gate objects (of arbitrary type) which are applied to each component of an incoming nD coordinate in turn. The trickery with the variadic template argument list is necessary, because we want to be able to combine arbitrary gate types (which have distinct types) to make the mapper as efficient as possible. the only requirement for a gate type is that it has to provide the necessary eval() functions.

Definition at line 466 of file map.h.

Member Typedef Documentation

◆ base_type

template<typename nd_rc_type , size_t _vsize, class ... gate_types>
typedef vspline::unary_functor< nd_rc_type , nd_rc_type , _vsize > vspline::map_functor< nd_rc_type, _vsize, gate_types >::base_type

Definition at line 470 of file map.h.

◆ in_type

template<typename nd_rc_type , size_t _vsize, class ... gate_types>
typedef base_type::in_type vspline::map_functor< nd_rc_type, _vsize, gate_types >::in_type

Definition at line 472 of file map.h.

◆ mvec_type

template<typename nd_rc_type , size_t _vsize, class ... gate_types>
typedef std::tuple< gate_types... > vspline::map_functor< nd_rc_type, _vsize, gate_types >::mvec_type

Definition at line 481 of file map.h.

◆ out_type

template<typename nd_rc_type , size_t _vsize, class ... gate_types>
typedef base_type::out_type vspline::map_functor< nd_rc_type, _vsize, gate_types >::out_type

Definition at line 473 of file map.h.

Member Enumeration Documentation

◆ anonymous enum

template<typename nd_rc_type , size_t _vsize, class ... gate_types>
anonymous enum
Enumerator
vsize 

Definition at line 475 of file map.h.

◆ anonymous enum

template<typename nd_rc_type , size_t _vsize, class ... gate_types>
anonymous enum
Enumerator
dimension 

Definition at line 477 of file map.h.

Constructor & Destructor Documentation

◆ map_functor() [1/2]

template<typename nd_rc_type , size_t _vsize, class ... gate_types>
vspline::map_functor< nd_rc_type, _vsize, gate_types >::map_functor ( gate_types ...  args)
inline

Definition at line 489 of file map.h.

◆ map_functor() [2/2]

template<typename nd_rc_type , size_t _vsize, class ... gate_types>
vspline::map_functor< nd_rc_type, _vsize, gate_types >::map_functor ( const mvec_type _mvec)
inline

Definition at line 495 of file map.h.

Member Function Documentation

◆ eval()

template<typename nd_rc_type , size_t _vsize, class ... gate_types>
template<class in_type , class out_type >
void vspline::map_functor< nd_rc_type, _vsize, gate_types >::eval ( const in_type in,
out_type out 
) const
inline

Definition at line 547 of file map.h.

Member Data Documentation

◆ mvec

template<typename nd_rc_type , size_t _vsize, class ... gate_types>
const mvec_type vspline::map_functor< nd_rc_type, _vsize, gate_types >::mvec

Definition at line 485 of file map.h.


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