vspline 1.1.0
Generic C++11 Code for Uniform B-Splines
|
definitions common to all files in this project, utility code More...
Go to the source code of this file.
Classes | |
struct | vspline::invalid_scalar< T, sz > |
struct | vspline::allocator_traits< T > |
vspline creates vigra::MultiArrays of vectorized types. As long as the vectorized types are Vc::SimdArray or vspline::simd_type, using std::allocator is fine, but when using other types, using a specific allocator may be necessary. Currently this is never the case, but I have the lookup of allocator type from this traits class in place if it should become necessary. More... | |
struct | vspline::not_implemented |
for interfaces which need specific implementations we use: More... | |
struct | vspline::dimension_mismatch |
dimension-mismatch is thrown if two arrays have different dimensions which should have the same dimensions. More... | |
struct | vspline::shape_mismatch |
shape mismatch is the exception which is thrown if the shapes of an input array and an output array do not match. More... | |
struct | vspline::not_supported |
exception which is thrown if an opertion is requested which vspline does not support More... | |
struct | vspline::out_of_bounds |
out_of_bounds is thrown by mapping mode REJECT for out-of-bounds coordinates this exception is left without a message, it only has a very specific application, and there it may be thrown often, so we don't want anything slowing it down. More... | |
struct | vspline::numeric_overflow |
exception which is thrown when assigning an rvalue which is larger than what the lvalue can hold More... | |
Namespaces | |
namespace | vspline |
Typedefs | |
typedef long double | vspline::xlf_type |
template<typename T > | |
using | vspline::ET = typename vigra::ExpandElementResult< T > ::type |
using definition for the 'elementary type' of a type via vigra's ExpandElementResult mechanism. Since this is a frequently used idiom in vspline but quite a mouthful, here's an abbreviation: More... | |
template<typename T > | |
using | vspline::EN = typename std::integral_constant< int, vigra::ExpandElementResult< T > ::size > ::type |
produce a std::integral_constant from the size obtained from vigra's ExpandElementResult mechanism More... | |
template<class T > | |
using | vspline::is_element_expandable = typename std::integral_constant< bool, ! std::is_same< typename vigra::ExpandElementResult< T > ::type, vigra::UnsuitableTypeForExpandElements > ::value > ::type |
is_element_expandable tests if a type T is known to vigra's ExpandElementResult mechanism. If this is so, the type is considered 'element-expandable'. More... | |
template<class T1 , class T2 > | |
using | vspline::promote_type = typename vigra::PromoteTraits< T1, T2 > ::Promote |
template<class T1 , class T2 > | |
using | vspline::common_math_type = typename vigra::NumericTraits< promote_type< T1, T2 > > ::RealPromote |
template<class T1 , class T2 > | |
using | vspline::promote_ele_type = typename vigra::ExpandElementResult< promote_type< T1, T2 > > ::type |
template<class T1 , class T2 > | |
using | vspline::common_math_ele_type = typename vigra::NumericTraits< promote_ele_type< T1, T2 > > ::RealPromote |
template<typename T , int N = EN < T > :: value> | |
using | vspline::canonical_type = typename std::conditional< N==1, ET< T >, vigra::TinyVector< ET< T >, N > > ::type |
produce the 'canonical type' for a given type T. If T is single-channel, this will be the elementary type itself, otherwise it's a TinyVector of the elementary type. optionally takes the number of elements the resulting type should have, to allow construction from a fundamental and a number of channels. More... | |
template<typename T , int N = EN < T > :: value> | |
using | vspline::synthetic_type = vigra::TinyVector< ET< T >, N > |
template<class T , size_t sz = 1> | |
using | vspline::scalar = typename std::conditional< sz==1, T, invalid_scalar< T, sz > > ::type |
definition of a scalar with the same template argument list as a simdized type, to use 'scalar' in the same syntactic slot More... | |
template<typename T , size_t SZ> | |
using | vspline::tiny_vector = typename vigra::TinyVector< T, static_cast< int >(SZ) > |
Enumerations | |
enum | vspline::bc_code { vspline::MIRROR , vspline::PERIODIC , vspline::REFLECT , vspline::NATURAL , vspline::CONSTANT , vspline::ZEROPAD , vspline::GUESS , vspline::INVALID } |
This enumeration is used for codes connected to boundary conditions. There are two aspects to boundary conditions: During prefiltering, the initial causal and anticausal coefficients have to be calculated in a way specific to the chosen boundary conditions. Bracing also needs these codes to pick the appropriate extrapolation code to extrapolate the coefficients beyond the core array. More... | |
Variables | |
const std::string | vspline::bc_name [] |
bc_name is for diagnostic output of bc codes More... | |
definitions common to all files in this project, utility code
This file contains
It includes vspline/vector.h which defines vspline's use of vectorization (meaning SIMD operation) and associated types ans code.
Definition in file common.h.