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

flip functor produces it's input with component order reversed. This can be used to deal with situations where coordinates in the 'wrong' order have to be fed to a functor expecting the opposite order and should be a fast way of doing so, since the compiler can likely optimize it well. I added this class to provide simple handling of incoming NumPy coordinates, which are normally in reverse order of vigra coordinates More...

#include <unary_functor.h>

Inheritance diagram for vspline::flip< _in_type, _vsize >:
vspline::unary_functor< _in_type, _in_type, vspline::vector_traits< _in_type > ::vsize > vspline::callable< flip< _in_type, vspline::vector_traits< _in_type > ::vsize >, _in_type, _in_type, vspline::vector_traits< _in_type > ::vsize > vspline::unary_functor_tag< _vsize >

Public Types

enum  { vsize = _vsize }
 
enum  { dimension = base_type::dim_in }
 
typedef vspline::unary_functor< _in_type, _in_type, _vsize > base_type
 
typedef IN in_type
 
typedef OUT out_type
 
typedef vector_traits< IN, 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< OUT, vsize >::type out_v
 
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< IN, vsize >::nd_ele_v in_nd_ele_v
 
typedef vector_traits< OUT, vsize >::nd_ele_v out_nd_ele_v
 
- Public Types inherited from vspline::unary_functor< _in_type, _in_type, vspline::vector_traits< _in_type > ::vsize >
enum  
 
enum  
 
enum  
 
typedef _in_type in_type
 
typedef _in_type out_type
 
typedef vspline::vector_traits< _in_type >::ele_type in_ele_type
 
typedef vspline::vector_traits< _in_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< _in_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< _in_type, vsize >::ele_v out_ele_v
 
typedef vector_traits< _in_type, vsize >::nd_ele_v in_nd_ele_v
 
typedef vector_traits< _in_type, vsize >::nd_ele_v out_nd_ele_v
 
typedef vector_traits< _in_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< _in_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 Types inherited from vspline::callable< flip< _in_type, vspline::vector_traits< _in_type > ::vsize >, _in_type, _in_type, vspline::vector_traits< _in_type > ::vsize >
typedef vector_traits< _in_type, vsize >::type cl_in_v
 
typedef vector_traits< _in_type, vsize >::type cl_out_v
 

Public Member Functions

void eval (const in_type &in_, out_type &out) const
 
template<typename = std::enable_if < ( vsize > 1 ) >>
void eval (const in_v &in_, out_v &out) const
 
- Public Member Functions inherited from vspline::callable< flip< _in_type, vspline::vector_traits< _in_type > ::vsize >, _in_type, _in_type, vspline::vector_traits< _in_type > ::vsize >
_in_type operator() (const _in_type &in) const
 
_in_type operator() (const _in_type &in)
 
cl_out_v operator() (const cl_in_v &in) const
 
cl_out_v operator() (const cl_in_v &in)
 

Additional Inherited Members

- Static Public Attributes inherited from vspline::unary_functor< _in_type, _in_type, vspline::vector_traits< _in_type > ::vsize >
static const bool has_capped_eval
 

Detailed Description

template<typename _in_type, size_t _vsize = vspline::vector_traits < _in_type > :: vsize>
struct vspline::flip< _in_type, _vsize >

flip functor produces it's input with component order reversed. This can be used to deal with situations where coordinates in the 'wrong' order have to be fed to a functor expecting the opposite order and should be a fast way of doing so, since the compiler can likely optimize it well. I added this class to provide simple handling of incoming NumPy coordinates, which are normally in reverse order of vigra coordinates

Definition at line 978 of file unary_functor.h.

Member Typedef Documentation

◆ base_type

template<typename _in_type , size_t _vsize = vspline::vector_traits < _in_type > :: vsize>
typedef vspline::unary_functor< _in_type , _in_type , _vsize > vspline::flip< _in_type, _vsize >::base_type

Definition at line 988 of file unary_functor.h.

◆ in_nd_ele_type

template<typename _in_type , size_t _vsize = vspline::vector_traits < _in_type > :: vsize>
typedef vigra::TinyVector< in_ele_type , dim_in > vspline::unary_functor< IN, OUT, _vsize >::in_nd_ele_type

Definition at line 224 of file unary_functor.h.

◆ in_nd_ele_v

template<typename _in_type , size_t _vsize = vspline::vector_traits < _in_type > :: vsize>
typedef vector_traits<IN,vsize>::nd_ele_v vspline::unary_functor< IN, OUT, _vsize >::in_nd_ele_v

Definition at line 247 of file unary_functor.h.

◆ in_type

template<typename _in_type , size_t _vsize = vspline::vector_traits < _in_type > :: vsize>
typedef IN vspline::unary_functor< IN, OUT, _vsize >::in_type

Definition at line 208 of file unary_functor.h.

◆ in_v

template<typename _in_type , size_t _vsize = vspline::vector_traits < _in_type > :: vsize>
typedef vector_traits<IN,vsize>::type vspline::unary_functor< IN, OUT, _vsize >::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.

Definition at line 254 of file unary_functor.h.

◆ out_nd_ele_type

template<typename _in_type , size_t _vsize = vspline::vector_traits < _in_type > :: vsize>
typedef vigra::TinyVector< out_ele_type , dim_out > vspline::unary_functor< IN, OUT, _vsize >::out_nd_ele_type

Definition at line 225 of file unary_functor.h.

◆ out_nd_ele_v

template<typename _in_type , size_t _vsize = vspline::vector_traits < _in_type > :: vsize>
typedef vector_traits<OUT,vsize>::nd_ele_v vspline::unary_functor< IN, OUT, _vsize >::out_nd_ele_v

Definition at line 248 of file unary_functor.h.

◆ out_type

template<typename _in_type , size_t _vsize = vspline::vector_traits < _in_type > :: vsize>
typedef OUT vspline::unary_functor< IN, OUT, _vsize >::out_type

Definition at line 209 of file unary_functor.h.

◆ out_v

template<typename _in_type , size_t _vsize = vspline::vector_traits < _in_type > :: vsize>
typedef vector_traits<OUT,vsize>::type vspline::unary_functor< IN, OUT, _vsize >::out_v

Definition at line 255 of file unary_functor.h.

Member Enumeration Documentation

◆ anonymous enum

template<typename _in_type , size_t _vsize = vspline::vector_traits < _in_type > :: vsize>
anonymous enum
Enumerator
vsize 

Definition at line 990 of file unary_functor.h.

◆ anonymous enum

template<typename _in_type , size_t _vsize = vspline::vector_traits < _in_type > :: vsize>
anonymous enum
Enumerator
dimension 

Definition at line 991 of file unary_functor.h.

Member Function Documentation

◆ eval() [1/2]

template<typename _in_type , size_t _vsize = vspline::vector_traits < _in_type > :: vsize>
void vspline::flip< _in_type, _vsize >::eval ( const in_type in_,
out_type out 
) const
inline

Definition at line 1002 of file unary_functor.h.

◆ eval() [2/2]

template<typename _in_type , size_t _vsize = vspline::vector_traits < _in_type > :: vsize>
template<typename = std::enable_if < ( vsize > 1 ) >>
void vspline::flip< _in_type, _vsize >::eval ( const in_v in_,
out_v out 
) const
inline

Definition at line 1022 of file unary_functor.h.


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