vspline 1.1.0
Generic C++11 Code for Uniform B-Splines
Public Types | Public Member Functions | Public Attributes | List of all members
vspline::detail::grid_eval_functor< _inner_type, ic_type > Struct Template Reference

grid_eval_functor is used for 'generalized' grid evaluation, where the functor passed in is not a bspline evaluator. For this general case, we can't precalculate anything to speed things up, all we need to do is pick the grid values and put them together to form arguments for calls to the functor. More...

#include <transform.h>

Inheritance diagram for vspline::detail::grid_eval_functor< _inner_type, ic_type >:
vspline::unary_functor< vspline::canonical_type< int, _inner_type::dim_in >, _inner_type::out_type, _inner_type::vsize > vspline::unary_functor_tag< _vsize >

Public Types

enum  { vsize = inner_type::vsize }
 
enum  { dimension = inner_type::dim_in }
 
typedef _inner_type inner_type
 
typedef vspline::canonical_type< ic_type, dimensionin_type
 
typedef inner_type::out_type out_type
 
typedef inner_type::in_ele_type rc_type
 
typedef vspline::unary_functor< in_type, out_type, vsizebase_type
 
typedef grid_spec< inner_type::dim_in, typename inner_type::in_ele_type > grid_spec_t
 
- Public Types inherited from vspline::unary_functor< vspline::canonical_type< int, _inner_type::dim_in >, _inner_type::out_type, _inner_type::vsize >
enum  
 
enum  
 
enum  
 
typedef vspline::canonical_type< int, _inner_type::dim_in > in_type
 
typedef _inner_type::out_type out_type
 
typedef vspline::vector_traits< vspline::canonical_type< int, _inner_type::dim_in > >::ele_type in_ele_type
 
typedef vspline::vector_traits< _inner_type::out_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< vspline::canonical_type< int, _inner_type::dim_in >, 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< _inner_type::out_type, vsize >::ele_v out_ele_v
 
typedef vector_traits< vspline::canonical_type< int, _inner_type::dim_in >, vsize >::nd_ele_v in_nd_ele_v
 
typedef vector_traits< _inner_type::out_type, vsize >::nd_ele_v out_nd_ele_v
 
typedef vector_traits< vspline::canonical_type< int, _inner_type::dim_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< _inner_type::out_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

 grid_eval_functor (grid_spec_t &_grid, const inner_type &_inner)
 
void eval (const in_type &c, out_type &result) const
 
template<typename = std::enable_if < ( vsize > 1 ) >>
void eval (const typename base_type::in_v &c, typename base_type::out_v &result) const
 

Public Attributes

const inner_type inner
 
grid_spec_t grid
 

Additional Inherited Members

- Static Public Attributes inherited from vspline::unary_functor< vspline::canonical_type< int, _inner_type::dim_in >, _inner_type::out_type, _inner_type::vsize >
static const bool has_capped_eval
 

Detailed Description

template<typename _inner_type, typename ic_type = int>
struct vspline::detail::grid_eval_functor< _inner_type, ic_type >

grid_eval_functor is used for 'generalized' grid evaluation, where the functor passed in is not a bspline evaluator. For this general case, we can't precalculate anything to speed things up, all we need to do is pick the grid values and put them together to form arguments for calls to the functor.

Definition at line 1148 of file transform.h.

Member Typedef Documentation

◆ base_type

template<typename _inner_type , typename ic_type = int>
typedef vspline::unary_functor< in_type , out_type , vsize > vspline::detail::grid_eval_functor< _inner_type, ic_type >::base_type

Definition at line 1168 of file transform.h.

◆ grid_spec_t

template<typename _inner_type , typename ic_type = int>
typedef grid_spec< inner_type::dim_in , typename inner_type::in_ele_type > vspline::detail::grid_eval_functor< _inner_type, ic_type >::grid_spec_t

Definition at line 1176 of file transform.h.

◆ in_type

template<typename _inner_type , typename ic_type = int>
typedef vspline::canonical_type< ic_type , dimension > vspline::detail::grid_eval_functor< _inner_type, ic_type >::in_type

Definition at line 1161 of file transform.h.

◆ inner_type

template<typename _inner_type , typename ic_type = int>
typedef _inner_type vspline::detail::grid_eval_functor< _inner_type, ic_type >::inner_type

Definition at line 1155 of file transform.h.

◆ out_type

template<typename _inner_type , typename ic_type = int>
typedef inner_type::out_type vspline::detail::grid_eval_functor< _inner_type, ic_type >::out_type

Definition at line 1163 of file transform.h.

◆ rc_type

template<typename _inner_type , typename ic_type = int>
typedef inner_type::in_ele_type vspline::detail::grid_eval_functor< _inner_type, ic_type >::rc_type

Definition at line 1165 of file transform.h.

Member Enumeration Documentation

◆ anonymous enum

template<typename _inner_type , typename ic_type = int>
anonymous enum
Enumerator
vsize 

Definition at line 1157 of file transform.h.

◆ anonymous enum

template<typename _inner_type , typename ic_type = int>
anonymous enum
Enumerator
dimension 

Definition at line 1158 of file transform.h.

Constructor & Destructor Documentation

◆ grid_eval_functor()

template<typename _inner_type , typename ic_type = int>
vspline::detail::grid_eval_functor< _inner_type, ic_type >::grid_eval_functor ( grid_spec_t _grid,
const inner_type _inner 
)
inline

Definition at line 1180 of file transform.h.

Member Function Documentation

◆ eval() [1/2]

template<typename _inner_type , typename ic_type = int>
void vspline::detail::grid_eval_functor< _inner_type, ic_type >::eval ( const in_type c,
out_type result 
) const
inline

Definition at line 1186 of file transform.h.

◆ eval() [2/2]

template<typename _inner_type , typename ic_type = int>
template<typename = std::enable_if < ( vsize > 1 ) >>
void vspline::detail::grid_eval_functor< _inner_type, ic_type >::eval ( const typename base_type::in_v c,
typename base_type::out_v result 
) const
inline

Definition at line 1207 of file transform.h.

Member Data Documentation

◆ grid

template<typename _inner_type , typename ic_type = int>
grid_spec_t vspline::detail::grid_eval_functor< _inner_type, ic_type >::grid

Definition at line 1178 of file transform.h.

◆ inner

template<typename _inner_type , typename ic_type = int>
const inner_type vspline::detail::grid_eval_functor< _inner_type, ic_type >::inner

Definition at line 1173 of file transform.h.


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