vspline 1.1.0
Generic C++11 Code for Uniform B-Splines
|
class chain_type is a helper class to pass one unary functor's result as argument to another one. We rely on T1 and T2 to provide a few of the standard types used in unary functors. Typically, T1 and T2 will both be vspline::unary_functors, but the type requirements could also be fulfilled 'manually'. More...
#include <unary_functor.h>
Public Types | |
enum | { vsize = T1::vsize } |
typedef vspline::unary_functor< typename T1::in_type, typename T2::out_type, vsize > | base_type |
typedef T1::out_type | intermediate_type |
typedef T1::out_v | intermediate_v |
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 |
Public Types inherited from vspline::unary_functor< T1::in_type, T2::out_type, T1::vsize > | |
enum | |
enum | |
enum | |
typedef T1::in_type | in_type |
typedef T2::out_type | out_type |
typedef vspline::vector_traits< T1::in_type >::ele_type | in_ele_type |
typedef vspline::vector_traits< T2::out_type >::ele_type | out_ele_type |
typedef vigra::TinyVector< in_ele_type, dim_in > | in_nd_ele_type |
typedef vigra::TinyVector< out_ele_type, dim_out > | out_nd_ele_type |
typedef vector_traits< T1::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< T2::out_type, vsize >::ele_v | out_ele_v |
typedef vector_traits< T1::in_type, vsize >::nd_ele_v | in_nd_ele_v |
typedef vector_traits< T2::out_type, vsize >::nd_ele_v | out_nd_ele_v |
typedef vector_traits< T1::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< T2::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 Types inherited from vspline::callable< chain_type< T1, T2 >, T1::in_type, T2::out_type, T1::vsize > | |
typedef vector_traits< T1::in_type, vsize >::type | cl_in_v |
typedef vector_traits< T2::out_type, vsize >::type | cl_out_v |
Public Member Functions | |
chain_type (const T1 &_t1, const T2 &_t2) | |
void | eval (const in_type &argument, out_type &result) const |
template<typename = std::enable_if < ( vsize > 1 ) >> | |
void | eval (const in_v &argument, out_v &result) const |
Public Member Functions inherited from vspline::callable< chain_type< T1, T2 >, T1::in_type, T2::out_type, T1::vsize > | |
T2::out_type | operator() (const T1::in_type &in) const |
T2::out_type | operator() (const T1::in_type &in) |
cl_out_v | operator() (const cl_in_v &in) const |
cl_out_v | operator() (const cl_in_v &in) |
Public Attributes | |
const T1 | t1 |
const T2 | t2 |
Additional Inherited Members | |
Static Public Attributes inherited from vspline::unary_functor< T1::in_type, T2::out_type, T1::vsize > | |
static const bool | has_capped_eval |
class chain_type is a helper class to pass one unary functor's result as argument to another one. We rely on T1 and T2 to provide a few of the standard types used in unary functors. Typically, T1 and T2 will both be vspline::unary_functors, but the type requirements could also be fulfilled 'manually'.
Note how callability is introduced via the mixin 'vspline::callable'. The inheritance definition looks confusing, the template arg list reads as: 'the derived class, followed by the arguments needed to determine the call signature(s)'. See vspline::callable above.
Definition at line 514 of file unary_functor.h.
typedef vspline::unary_functor< typename T1::in_type , typename T2::out_type , vsize > vspline::chain_type< T1, T2 >::base_type |
Definition at line 531 of file unary_functor.h.
typedef IN vspline::unary_functor< IN, OUT, _vsize >::in_type |
Definition at line 208 of file unary_functor.h.
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.
typedef T1::out_type vspline::chain_type< T1, T2 >::intermediate_type |
Definition at line 546 of file unary_functor.h.
typedef T1::out_v vspline::chain_type< T1, T2 >::intermediate_v |
Definition at line 547 of file unary_functor.h.
typedef OUT vspline::unary_functor< IN, OUT, _vsize >::out_type |
Definition at line 209 of file unary_functor.h.
typedef vector_traits<OUT,vsize>::type vspline::unary_functor< IN, OUT, _vsize >::out_v |
Definition at line 255 of file unary_functor.h.
anonymous enum |
Enumerator | |
---|---|
vsize |
Definition at line 527 of file unary_functor.h.
|
inline |
Definition at line 556 of file unary_functor.h.
|
inline |
Definition at line 564 of file unary_functor.h.
|
inline |
Definition at line 573 of file unary_functor.h.
const T1 vspline::chain_type< T1, T2 >::t1 |
Definition at line 551 of file unary_functor.h.
const T2 vspline::chain_type< T1, T2 >::t2 |
Definition at line 552 of file unary_functor.h.