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
vspline::detail::grev_generator< ET > Struct Template Reference

we need a 'generator functor' to implement grid_eval using the code in wielding.h. this functor precalculates the b-spline evaluation weights corresponding to the coordinates in the grid and stores them in vectorized format, to speed up their use as much as possible. More...

#include <transform.h>

Public Types

typedef ET evaluator_type
 
typedef evaluator_type::inner_type inner_type
 
typedef evaluator_type::math_ele_type weight_type
 
typedef evaluator_type::out_type out_type
 
typedef evaluator_type::out_ele_type out_ele_type
 
typedef evaluator_type::out_nd_ele_type out_nd_ele_type
 
typedef evaluator_type::out_v out_v
 
typedef evaluator_type::out_ele_v out_ele_v
 
typedef evaluator_type::out_nd_ele_v out_nd_ele_v
 
typedef vspline::vector_traits< weight_type, vsize >::type weight_v
 
typedef evaluator_type::rc_ele_type rc_type
 
typedef vigra::MultiArrayView< dimension, typename evaluator_type::trg_type > target_type
 
typedef vigra::TinyVector< size_t, dimensionshape_type
 
typedef vspline::vector_traits< int, vsize >::type ofs_ele_v
 
typedef vspline::grid_spec< dimension, rc_typegrid_spec_type
 
using allocator_t = typename vspline::allocator_traits< weight_v > ::type
 

Public Member Functions

void reset (shape_type crd, size_t _aggregates)
 
void fetch_weights ()
 
 grev_generator (const vspline::grid_spec< dimension, rc_type > &_grid, const evaluator_type &_itp, size_t _axis, shape_type _shape)
 
template<typename = std::enable_if < ( vsize > 1 ) >>
void eval (out_v &result)
 
void eval (out_type &result)
 
void eval (vigra::MultiArrayView< 1, out_ele_v > &vresult, vigra::MultiArrayView< 1, out_type > &leftover)
 
void eval (vigra::MultiArrayView< 1, out_type > &result)
 
 ~grev_generator ()
 

Public Attributes

const int spline_order
 
const shape_type shape
 
const grid_spec_typegrid
 
const evaluator_typeitp
 
const size_t axis
 
const size_t aggregates
 
const size_t rest
 
const size_t w_pack_sz
 
int socket_offset
 
void * memory_guard
 
weight_typegrid_weight [dimension]
 
weight_typeshuffled_weights
 
int * grid_ofs [dimension]
 
size_t current_pack
 
shape_type tail_crd
 
vigra::MultiArray< 2, weight_typeweight
 
vigra::MultiArray< 2, weight_v, allocator_tvweight
 

Static Public Attributes

static const size_t dimension = evaluator_type::dimension
 
static const size_t vsize = evaluator_type::vsize
 
static const size_t channels = evaluator_type::channels
 

Detailed Description

template<typename ET>
struct vspline::detail::grev_generator< ET >

we need a 'generator functor' to implement grid_eval using the code in wielding.h. this functor precalculates the b-spline evaluation weights corresponding to the coordinates in the grid and stores them in vectorized format, to speed up their use as much as possible.

Definition at line 717 of file transform.h.

Member Typedef Documentation

◆ allocator_t

template<typename ET >
using vspline::detail::grev_generator< ET >::allocator_t = typename vspline::allocator_traits < weight_v > :: type

Definition at line 801 of file transform.h.

◆ evaluator_type

template<typename ET >
typedef ET vspline::detail::grev_generator< ET >::evaluator_type

Definition at line 719 of file transform.h.

◆ grid_spec_type

template<typename ET >
typedef vspline::grid_spec< dimension , rc_type > vspline::detail::grev_generator< ET >::grid_spec_type

Definition at line 745 of file transform.h.

◆ inner_type

template<typename ET >
typedef evaluator_type::inner_type vspline::detail::grev_generator< ET >::inner_type

Definition at line 725 of file transform.h.

◆ ofs_ele_v

template<typename ET >
typedef vspline::vector_traits<int,vsize>::type vspline::detail::grev_generator< ET >::ofs_ele_v

Definition at line 743 of file transform.h.

◆ out_ele_type

template<typename ET >
typedef evaluator_type::out_ele_type vspline::detail::grev_generator< ET >::out_ele_type

Definition at line 729 of file transform.h.

◆ out_ele_v

template<typename ET >
typedef evaluator_type::out_ele_v vspline::detail::grev_generator< ET >::out_ele_v

Definition at line 732 of file transform.h.

◆ out_nd_ele_type

template<typename ET >
typedef evaluator_type::out_nd_ele_type vspline::detail::grev_generator< ET >::out_nd_ele_type

Definition at line 730 of file transform.h.

◆ out_nd_ele_v

template<typename ET >
typedef evaluator_type::out_nd_ele_v vspline::detail::grev_generator< ET >::out_nd_ele_v

Definition at line 733 of file transform.h.

◆ out_type

template<typename ET >
typedef evaluator_type::out_type vspline::detail::grev_generator< ET >::out_type

Definition at line 728 of file transform.h.

◆ out_v

template<typename ET >
typedef evaluator_type::out_v vspline::detail::grev_generator< ET >::out_v

Definition at line 731 of file transform.h.

◆ rc_type

template<typename ET >
typedef evaluator_type::rc_ele_type vspline::detail::grev_generator< ET >::rc_type

Definition at line 737 of file transform.h.

◆ shape_type

template<typename ET >
typedef vigra::TinyVector< size_t , dimension > vspline::detail::grev_generator< ET >::shape_type

Definition at line 740 of file transform.h.

◆ target_type

template<typename ET >
typedef vigra::MultiArrayView< dimension , typename evaluator_type::trg_type > vspline::detail::grev_generator< ET >::target_type

Definition at line 739 of file transform.h.

◆ weight_type

template<typename ET >
typedef evaluator_type::math_ele_type vspline::detail::grev_generator< ET >::weight_type

Definition at line 726 of file transform.h.

◆ weight_v

template<typename ET >
typedef vspline::vector_traits<weight_type,vsize>::type vspline::detail::grev_generator< ET >::weight_v

Definition at line 736 of file transform.h.

Constructor & Destructor Documentation

◆ grev_generator()

template<typename ET >
vspline::detail::grev_generator< ET >::grev_generator ( const vspline::grid_spec< dimension, rc_type > &  _grid,
const evaluator_type _itp,
size_t  _axis,
shape_type  _shape 
)
inline

Definition at line 872 of file transform.h.

◆ ~grev_generator()

template<typename ET >
vspline::detail::grev_generator< ET >::~grev_generator ( )
inline

Definition at line 1083 of file transform.h.

Member Function Documentation

◆ eval() [1/4]

template<typename ET >
void vspline::detail::grev_generator< ET >::eval ( out_type result)
inline

Definition at line 1013 of file transform.h.

◆ eval() [2/4]

template<typename ET >
template<typename = std::enable_if < ( vsize > 1 ) >>
void vspline::detail::grev_generator< ET >::eval ( out_v result)
inline

Definition at line 968 of file transform.h.

◆ eval() [3/4]

template<typename ET >
void vspline::detail::grev_generator< ET >::eval ( vigra::MultiArrayView< 1, out_ele_v > &  vresult,
vigra::MultiArrayView< 1, out_type > &  leftover 
)
inline

Definition at line 1039 of file transform.h.

◆ eval() [4/4]

template<typename ET >
void vspline::detail::grev_generator< ET >::eval ( vigra::MultiArrayView< 1, out_type > &  result)
inline

Definition at line 1065 of file transform.h.

◆ fetch_weights()

template<typename ET >
void vspline::detail::grev_generator< ET >::fetch_weights ( )
inline

Definition at line 854 of file transform.h.

◆ reset()

template<typename ET >
void vspline::detail::grev_generator< ET >::reset ( shape_type  crd,
size_t  _aggregates 
)
inline

Definition at line 818 of file transform.h.

Member Data Documentation

◆ aggregates

template<typename ET >
const size_t vspline::detail::grev_generator< ET >::aggregates

Definition at line 752 of file transform.h.

◆ axis

template<typename ET >
const size_t vspline::detail::grev_generator< ET >::axis

Definition at line 751 of file transform.h.

◆ channels

template<typename ET >
const size_t vspline::detail::grev_generator< ET >::channels = evaluator_type::channels
static

Definition at line 723 of file transform.h.

◆ current_pack

template<typename ET >
size_t vspline::detail::grev_generator< ET >::current_pack

Definition at line 786 of file transform.h.

◆ dimension

template<typename ET >
const size_t vspline::detail::grev_generator< ET >::dimension = evaluator_type::dimension
static

Definition at line 721 of file transform.h.

◆ grid

template<typename ET >
const grid_spec_type& vspline::detail::grev_generator< ET >::grid

Definition at line 749 of file transform.h.

◆ grid_ofs

template<typename ET >
int* vspline::detail::grev_generator< ET >::grid_ofs[dimension]

Definition at line 781 of file transform.h.

◆ grid_weight

template<typename ET >
weight_type* vspline::detail::grev_generator< ET >::grid_weight[dimension]

Definition at line 770 of file transform.h.

◆ itp

template<typename ET >
const evaluator_type& vspline::detail::grev_generator< ET >::itp

Definition at line 750 of file transform.h.

◆ memory_guard

template<typename ET >
void* vspline::detail::grev_generator< ET >::memory_guard

Definition at line 764 of file transform.h.

◆ rest

template<typename ET >
const size_t vspline::detail::grev_generator< ET >::rest

Definition at line 753 of file transform.h.

◆ shape

template<typename ET >
const shape_type vspline::detail::grev_generator< ET >::shape

Definition at line 748 of file transform.h.

◆ shuffled_weights

template<typename ET >
weight_type* vspline::detail::grev_generator< ET >::shuffled_weights

Definition at line 777 of file transform.h.

◆ socket_offset

template<typename ET >
int vspline::detail::grev_generator< ET >::socket_offset

Definition at line 756 of file transform.h.

◆ spline_order

template<typename ET >
const int vspline::detail::grev_generator< ET >::spline_order

Definition at line 747 of file transform.h.

◆ tail_crd

template<typename ET >
shape_type vspline::detail::grev_generator< ET >::tail_crd

Definition at line 793 of file transform.h.

◆ vsize

template<typename ET >
const size_t vspline::detail::grev_generator< ET >::vsize = evaluator_type::vsize
static

Definition at line 722 of file transform.h.

◆ vweight

template<typename ET >
vigra::MultiArray< 2 , weight_v , allocator_t > vspline::detail::grev_generator< ET >::vweight

Definition at line 804 of file transform.h.

◆ w_pack_sz

template<typename ET >
const size_t vspline::detail::grev_generator< ET >::w_pack_sz

Definition at line 754 of file transform.h.

◆ weight

template<typename ET >
vigra::MultiArray< 2 , weight_type > vspline::detail::grev_generator< ET >::weight

Definition at line 797 of file transform.h.


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