vspline 1.1.0
Generic C++11 Code for Uniform B-Splines
|
class template vc_simd_type provides a fixed-size SIMD type. This implementation of vspline::vc_simd_type uses Vc::SimdArray The 'acrobatics' may seem futile - why inherit privately from Vc::SimdArray, then code a class template which does essentially the same? There are several reasons: first, the wrapper class results in a common interface shared with the other SIMD implementations, second, there are some added members which can't be 'put into' Vc::SimdArray from the outside. And, third, the template signature is uniform, avoiding Vc::SimdArray's two additional template arguments. More...
#include <vc_simd_type.h>
Classes | |
struct | masked_type |
Public Types | |
typedef Vc::SimdArray< _value_type, _vsize > | base_t |
typedef std::size_t | size_type |
typedef _value_type | value_type |
typedef index_type::value_type | index_ele_type |
Public Member Functions | |
base_t & | to_base () |
const base_t & | to_base () const |
operator base_t () | |
operator base_t () const | |
vc_simd_type & | operator= (const value_type &rhs) |
vc_simd_type & | operator= (const value_type &&rhs) |
vc_simd_type & | operator= (const base_t &ini) |
vc_simd_type & | operator= (const base_t &&ini) |
vc_simd_type & | operator= (const vc_simd_type &ini)=default |
vc_simd_type & | operator= (vc_simd_type &&ini)=default |
vc_simd_type (const value_type &ini) | |
vc_simd_type (const value_type &&ini) | |
vc_simd_type (const base_t &ini) | |
vc_simd_type (const base_t &&ini) | |
vc_simd_type ()=default | |
vc_simd_type (const vc_simd_type &)=default | |
vc_simd_type (vc_simd_type &&)=default | |
template<typename U > | |
vc_simd_type (const vc_simd_type< U, vsize > &ini) | |
template<typename U > | |
vc_simd_type (const vc_simd_type< U, vsize > &&ini) | |
template<typename U > | |
vc_simd_type & | operator= (const vc_simd_type< U, vsize > &ini) |
template<typename U > | |
vc_simd_type & | operator= (const vc_simd_type< U, vsize > &&ini) |
vc_simd_type & | operator= (const simd_type< unsigned char, vsize > &rhs) |
vc_simd_type & | operator= (const simd_type< unsigned char, vsize > &&rhs) |
vc_simd_type (const simd_type< unsigned char, vsize > &ini) | |
vc_simd_type (const simd_type< unsigned char, vsize > &&ini) | |
void | gather (const value_type *const p_src, const index_type &indexes) |
void | scatter (value_type *const p_trg, const index_type &indexes) const |
template<typename _index_type > | |
void | gather (const value_type *const p_src, const _index_type &_indexes) |
template<typename _index_type > | |
void | scatter (value_type *const p_trg, const _index_type &_indexes) const |
template<typename index_type > | |
vc_simd_type (const value_type *const p_src, const index_type &indexes) | |
void | rgather (const value_type *const p_src, const index_ele_type &step) |
void | rscatter (value_type *p_trg, const index_ele_type &step) const |
COMPARE_FUNC (<, operator<) | |
COMPARE_FUNC (<=, operator<=) | |
COMPARE_FUNC (>, operator>) | |
COMPARE_FUNC (>=, operator>=) | |
COMPARE_FUNC (==, operator==) | |
COMPARE_FUNC (!=, operator!=) | |
masked_type | operator() (const mask_type &mask) |
value_type | sum () const |
Static Public Member Functions | |
static constexpr size_type | size () |
static const vc_simd_type | iota () |
static const index_type | IndexesFrom (const index_ele_type &start, const index_ele_type &step) |
static const index_type | IndexesFrom (const index_ele_type &step) |
Static Public Attributes | |
static const size_type | vsize = _vsize |
static const int | ivsize = _vsize |
Friends | |
std::ostream & | operator<< (std::ostream &osr, vc_simd_type it) |
std::istream & | operator>> (std::istream &isr, vc_simd_type it) |
vc_simd_type | tan (const vc_simd_type &arg) |
vc_simd_type | pow (const vc_simd_type &base, const vc_simd_type &exponent) |
class template vc_simd_type provides a fixed-size SIMD type. This implementation of vspline::vc_simd_type uses Vc::SimdArray The 'acrobatics' may seem futile - why inherit privately from Vc::SimdArray, then code a class template which does essentially the same? There are several reasons: first, the wrapper class results in a common interface shared with the other SIMD implementations, second, there are some added members which can't be 'put into' Vc::SimdArray from the outside. And, third, the template signature is uniform, avoiding Vc::SimdArray's two additional template arguments.
Definition at line 75 of file vc_simd_type.h.
typedef Vc::SimdArray< _value_type , _vsize > vspline::vc_simd_type< _value_type, _vsize >::base_t |
Definition at line 78 of file vc_simd_type.h.
typedef index_type::value_type vspline::vc_simd_type< _value_type, _vsize >::index_ele_type |
Definition at line 127 of file vc_simd_type.h.
typedef std::size_t vspline::vc_simd_type< _value_type, _vsize >::size_type |
Definition at line 104 of file vc_simd_type.h.
typedef _value_type vspline::vc_simd_type< _value_type, _vsize >::value_type |
Definition at line 105 of file vc_simd_type.h.
|
inline |
Definition at line 163 of file vc_simd_type.h.
|
inline |
Definition at line 166 of file vc_simd_type.h.
|
inline |
Definition at line 170 of file vc_simd_type.h.
|
inline |
Definition at line 174 of file vc_simd_type.h.
|
default |
|
default |
|
default |
|
inline |
Definition at line 188 of file vc_simd_type.h.
|
inline |
Definition at line 192 of file vc_simd_type.h.
|
inline |
Definition at line 230 of file vc_simd_type.h.
|
inline |
Definition at line 235 of file vc_simd_type.h.
|
inline |
Definition at line 364 of file vc_simd_type.h.
vspline::vc_simd_type< _value_type, _vsize >::COMPARE_FUNC | ( | ! | , |
operator! | |||
) |
vspline::vc_simd_type< _value_type, _vsize >::COMPARE_FUNC | ( | ) |
vspline::vc_simd_type< _value_type, _vsize >::COMPARE_FUNC | ( | <= | , |
operator<= | |||
) |
vspline::vc_simd_type< _value_type, _vsize >::COMPARE_FUNC | ( | operator | = = | ) |
vspline::vc_simd_type< _value_type, _vsize >::COMPARE_FUNC | ( | operator | ) |
vspline::vc_simd_type< _value_type, _vsize >::COMPARE_FUNC | ( | >= | , |
operator>= | |||
) |
|
inline |
Definition at line 348 of file vc_simd_type.h.
|
inline |
Definition at line 335 of file vc_simd_type.h.
|
inlinestatic |
Definition at line 294 of file vc_simd_type.h.
|
inlinestatic |
Definition at line 302 of file vc_simd_type.h.
|
inlinestatic |
Definition at line 286 of file vc_simd_type.h.
|
inline |
Definition at line 94 of file vc_simd_type.h.
|
inline |
Definition at line 99 of file vc_simd_type.h.
|
inline |
Definition at line 696 of file vc_simd_type.h.
|
inline |
Definition at line 151 of file vc_simd_type.h.
|
inline |
Definition at line 146 of file vc_simd_type.h.
|
inline |
Definition at line 221 of file vc_simd_type.h.
|
inline |
Definition at line 212 of file vc_simd_type.h.
|
inline |
Definition at line 140 of file vc_simd_type.h.
|
inline |
Definition at line 135 of file vc_simd_type.h.
|
default |
|
inline |
Definition at line 204 of file vc_simd_type.h.
|
inline |
Definition at line 197 of file vc_simd_type.h.
|
default |
|
inline |
Definition at line 375 of file vc_simd_type.h.
|
inline |
Definition at line 381 of file vc_simd_type.h.
|
inline |
Definition at line 355 of file vc_simd_type.h.
|
inline |
Definition at line 341 of file vc_simd_type.h.
|
inlinestaticconstexpr |
Definition at line 111 of file vc_simd_type.h.
|
inline |
Definition at line 726 of file vc_simd_type.h.
|
inline |
Definition at line 82 of file vc_simd_type.h.
|
inline |
Definition at line 87 of file vc_simd_type.h.
|
friend |
Definition at line 309 of file vc_simd_type.h.
|
friend |
Definition at line 316 of file vc_simd_type.h.
|
friend |
Definition at line 440 of file vc_simd_type.h.
|
friend |
Definition at line 418 of file vc_simd_type.h.
|
static |
Definition at line 107 of file vc_simd_type.h.
|
static |
Definition at line 106 of file vc_simd_type.h.