|
Nektar++
|
#include <tinysimd.hpp>
Public Types | |
| using | scalarType = typename SimdType::scalarType |
| using | scalarIndexType = scalar_index_type_t< SimdType > |
| using | chunkType = SimdType |
| using | chunkIndexType = simd< scalarIndexType, chunkWidth > |
| using | vectorType = std::array< chunkType, numChunks > |
| using | scalarArray = scalarType[width] |
Public Member Functions | |
| long_simd ()=default | |
| long_simd (const long_simd &rhs)=default | |
| void | broadcast (const chunkType &rhs) |
| long_simd (const vectorType &rhs) | |
| long_simd (const chunkType *rhs) | |
| long_simd (const scalarType rhs) | |
| long_simd & | operator= (const long_simd &)=default |
| void | store (scalarType *p) const |
| template<class flag , typename std::enable_if< is_load_tag_v< flag >, bool >::type = 0> | |
| void | store (scalarType *p, flag f) const |
| void | load (const scalarType *p) |
| template<class flag , typename std::enable_if< is_load_tag_v< flag >, bool >::type = 0> | |
| void | load (const scalarType *p, flag f) |
| void | broadcast (const scalarType rhs) |
| template<typename IndexType > | |
| void | gather (const scalarType *p, const IndexType *indices) |
| template<typename IndexType > | |
| void | scatter (scalarType *out, const IndexType *indices) const |
| void | fma (const long_simd &a, const long_simd &b) |
| void | fma (const long_simd &a, const chunkType &b) |
| void | fma (const chunkType &a, const long_simd &b) |
| void | fma (const chunkType &a, const chunkType &b) |
| template<typename U , typename std::enable_if< std::is_arithmetic_v< U >, bool >::type = 0> | |
| void | fma (const long_simd &a, U b) |
| template<typename U , typename std::enable_if< std::is_arithmetic_v< U >, bool >::type = 0> | |
| void | fma (U a, const long_simd &b) |
| template<typename U , typename V , typename std::enable_if< std::is_arithmetic_v< U > &&std::is_arithmetic_v< V >, bool >::type = 0> | |
| void | fma (U a, V b) |
| scalarType | operator[] (size_t i) const |
| scalarType & | operator[] (size_t i) |
| void | operator+= (const long_simd &rhs) |
| void | operator+= (const chunkType &rhs) |
| template<typename U , typename std::enable_if< std::is_arithmetic_v< U >, bool >::type = 0> | |
| void | operator+= (U rhs) |
| void | operator-= (const long_simd &rhs) |
| void | operator-= (const chunkType &rhs) |
| template<typename U , typename std::enable_if< std::is_arithmetic_v< U >, bool >::type = 0> | |
| void | operator-= (U rhs) |
| void | operator*= (const long_simd &rhs) |
| void | operator*= (const chunkType &rhs) |
| template<typename U , typename std::enable_if< std::is_arithmetic_v< U >, bool >::type = 0> | |
| void | operator*= (U rhs) |
| void | operator/= (const long_simd &rhs) |
| void | operator/= (const chunkType &rhs) |
| template<typename U , typename std::enable_if< std::is_arithmetic_v< U >, bool >::type = 0> | |
| void | operator/= (U rhs) |
Public Attributes | |
| chunkType | _data [numChunks] |
Static Public Attributes | |
| static constexpr unsigned int | width = Width |
| static constexpr unsigned int | alignment = SimdType::alignment |
| static constexpr unsigned int | chunkWidth = SimdType::width |
| static constexpr unsigned int | numChunks = width / chunkWidth |
Definition at line 152 of file tinysimd.hpp.
| using tinysimd::details::long_simd< SimdType, Width >::chunkIndexType = simd<scalarIndexType, chunkWidth> |
Definition at line 170 of file tinysimd.hpp.
| using tinysimd::details::long_simd< SimdType, Width >::chunkType = SimdType |
Definition at line 169 of file tinysimd.hpp.
| using tinysimd::details::long_simd< SimdType, Width >::scalarArray = scalarType[width] |
Definition at line 172 of file tinysimd.hpp.
| using tinysimd::details::long_simd< SimdType, Width >::scalarIndexType = scalar_index_type_t<SimdType> |
Definition at line 168 of file tinysimd.hpp.
| using tinysimd::details::long_simd< SimdType, Width >::scalarType = typename SimdType::scalarType |
Definition at line 167 of file tinysimd.hpp.
| using tinysimd::details::long_simd< SimdType, Width >::vectorType = std::array<chunkType, numChunks> |
Definition at line 171 of file tinysimd.hpp.
|
inlinedefault |
|
inlinedefault |
|
inline |
Definition at line 193 of file tinysimd.hpp.
References tinysimd::details::long_simd< SimdType, Width >::_data, tinysimd::details::long_simd< SimdType, Width >::numChunks, and TINYSIMD_PRAGMA_UNROLL.
|
inline |
Definition at line 202 of file tinysimd.hpp.
References tinysimd::details::long_simd< SimdType, Width >::_data, tinysimd::details::long_simd< SimdType, Width >::numChunks, and TINYSIMD_PRAGMA_UNROLL.
|
inline |
Definition at line 211 of file tinysimd.hpp.
References tinysimd::details::long_simd< SimdType, Width >::broadcast().
|
inline |
Definition at line 182 of file tinysimd.hpp.
References tinysimd::details::long_simd< SimdType, Width >::_data, tinysimd::details::long_simd< SimdType, Width >::numChunks, and TINYSIMD_PRAGMA_UNROLL.
Referenced by tinysimd::details::long_simd< SimdType, Width >::broadcast(), and tinysimd::details::long_simd< SimdType, Width >::long_simd().
|
inline |
Definition at line 258 of file tinysimd.hpp.
References tinysimd::details::long_simd< SimdType, Width >::broadcast().
|
inline |
Definition at line 310 of file tinysimd.hpp.
|
inline |
Definition at line 301 of file tinysimd.hpp.
References tinysimd::details::long_simd< SimdType, Width >::_data, tinysimd::details::long_simd< SimdType, Width >::numChunks, and TINYSIMD_PRAGMA_UNROLL.
|
inline |
Definition at line 292 of file tinysimd.hpp.
References tinysimd::details::long_simd< SimdType, Width >::_data, tinysimd::details::long_simd< SimdType, Width >::numChunks, and TINYSIMD_PRAGMA_UNROLL.
|
inline |
Definition at line 283 of file tinysimd.hpp.
References tinysimd::details::long_simd< SimdType, Width >::_data, tinysimd::details::long_simd< SimdType, Width >::numChunks, and TINYSIMD_PRAGMA_UNROLL.
Referenced by tinysimd::details::long_simd< SimdType, Width >::fma(), tinysimd::details::long_simd< SimdType, Width >::fma(), and tinysimd::details::long_simd< SimdType, Width >::fma().
|
inline |
Definition at line 318 of file tinysimd.hpp.
References tinysimd::details::long_simd< SimdType, Width >::fma().
|
inline |
Definition at line 325 of file tinysimd.hpp.
References tinysimd::details::long_simd< SimdType, Width >::fma().
|
inline |
Definition at line 334 of file tinysimd.hpp.
References tinysimd::details::long_simd< SimdType, Width >::fma().
|
inline |
Definition at line 264 of file tinysimd.hpp.
References tinysimd::details::long_simd< SimdType, Width >::_data, tinysimd::details::long_simd< SimdType, Width >::numChunks, and TINYSIMD_PRAGMA_UNROLL.
|
inline |
Definition at line 238 of file tinysimd.hpp.
References tinysimd::details::long_simd< SimdType, Width >::_data, tinysimd::details::long_simd< SimdType, Width >::chunkWidth, tinysimd::details::long_simd< SimdType, Width >::numChunks, and TINYSIMD_PRAGMA_UNROLL.
Referenced by tinysimd::deinterleave_store(), tinysimd::load_interleave(), tinysimd::load_unalign_interleave(), and tinysimd::load_unalign_interleave_skipPads().
|
inline |
Definition at line 249 of file tinysimd.hpp.
References tinysimd::details::long_simd< SimdType, Width >::_data, tinysimd::details::long_simd< SimdType, Width >::chunkWidth, tinysimd::details::long_simd< SimdType, Width >::numChunks, and TINYSIMD_PRAGMA_UNROLL.
|
inline |
Definition at line 412 of file tinysimd.hpp.
References tinysimd::details::long_simd< SimdType, Width >::_data, tinysimd::details::long_simd< SimdType, Width >::numChunks, and TINYSIMD_PRAGMA_UNROLL.
|
inline |
Definition at line 403 of file tinysimd.hpp.
References tinysimd::details::long_simd< SimdType, Width >::_data, tinysimd::details::long_simd< SimdType, Width >::numChunks, and TINYSIMD_PRAGMA_UNROLL.
|
inline |
Definition at line 423 of file tinysimd.hpp.
|
inline |
Definition at line 362 of file tinysimd.hpp.
References tinysimd::details::long_simd< SimdType, Width >::_data, tinysimd::details::long_simd< SimdType, Width >::numChunks, and TINYSIMD_PRAGMA_UNROLL.
|
inline |
Definition at line 353 of file tinysimd.hpp.
References tinysimd::details::long_simd< SimdType, Width >::_data, tinysimd::details::long_simd< SimdType, Width >::numChunks, and TINYSIMD_PRAGMA_UNROLL.
|
inline |
Definition at line 373 of file tinysimd.hpp.
|
inline |
Definition at line 387 of file tinysimd.hpp.
References tinysimd::details::long_simd< SimdType, Width >::_data, tinysimd::details::long_simd< SimdType, Width >::numChunks, and TINYSIMD_PRAGMA_UNROLL.
|
inline |
Definition at line 378 of file tinysimd.hpp.
References tinysimd::details::long_simd< SimdType, Width >::_data, tinysimd::details::long_simd< SimdType, Width >::numChunks, and TINYSIMD_PRAGMA_UNROLL.
|
inline |
Definition at line 398 of file tinysimd.hpp.
|
inline |
Definition at line 437 of file tinysimd.hpp.
References tinysimd::details::long_simd< SimdType, Width >::_data, tinysimd::details::long_simd< SimdType, Width >::numChunks, and TINYSIMD_PRAGMA_UNROLL.
|
inline |
Definition at line 428 of file tinysimd.hpp.
References tinysimd::details::long_simd< SimdType, Width >::_data, tinysimd::details::long_simd< SimdType, Width >::numChunks, and TINYSIMD_PRAGMA_UNROLL.
|
inline |
Definition at line 448 of file tinysimd.hpp.
|
inlinedefault |
|
inline |
Definition at line 347 of file tinysimd.hpp.
References tinysimd::details::long_simd< SimdType, Width >::_data.
|
inline |
Definition at line 340 of file tinysimd.hpp.
References tinysimd::details::long_simd< SimdType, Width >::alignment, tinysimd::is_aligned, and tinysimd::details::long_simd< SimdType, Width >::store().
|
inline |
Definition at line 274 of file tinysimd.hpp.
References tinysimd::details::long_simd< SimdType, Width >::_data, tinysimd::details::long_simd< SimdType, Width >::numChunks, and TINYSIMD_PRAGMA_UNROLL.
|
inline |
Definition at line 218 of file tinysimd.hpp.
References tinysimd::details::long_simd< SimdType, Width >::_data, tinysimd::details::long_simd< SimdType, Width >::chunkWidth, tinysimd::details::long_simd< SimdType, Width >::numChunks, and TINYSIMD_PRAGMA_UNROLL.
Referenced by tinysimd::deinterleave_unalign_store(), tinysimd::deinterleave_unalign_store_skipPads(), and tinysimd::details::long_simd< SimdType, Width >::operator[]().
|
inline |
Definition at line 229 of file tinysimd.hpp.
References tinysimd::details::long_simd< SimdType, Width >::_data, tinysimd::details::long_simd< SimdType, Width >::chunkWidth, tinysimd::details::long_simd< SimdType, Width >::numChunks, and TINYSIMD_PRAGMA_UNROLL.
| chunkType tinysimd::details::long_simd< SimdType, Width >::_data[numChunks] |
Definition at line 177 of file tinysimd.hpp.
Referenced by tinysimd::abs(), tinysimd::details::long_simd< SimdType, Width >::broadcast(), tinysimd::details::long_simd< SimdType, Width >::fma(), tinysimd::details::long_simd< SimdType, Width >::fma(), tinysimd::details::long_simd< SimdType, Width >::fma(), tinysimd::details::long_simd< SimdType, Width >::gather(), tinysimd::details::long_simd< SimdType, Width >::load(), tinysimd::details::long_simd< SimdType, Width >::load(), tinysimd::log(), tinysimd::details::long_simd< SimdType, Width >::long_simd(), tinysimd::details::long_simd< SimdType, Width >::long_simd(), tinysimd::max(), tinysimd::min(), tinysimd::details::long_simd< SimdType, Width >::operator*=(), tinysimd::details::long_simd< SimdType, Width >::operator*=(), tinysimd::details::long_simd< SimdType, Width >::operator+=(), tinysimd::details::long_simd< SimdType, Width >::operator+=(), tinysimd::operator-(), tinysimd::operator-(), tinysimd::details::long_simd< SimdType, Width >::operator-=(), tinysimd::details::long_simd< SimdType, Width >::operator-=(), tinysimd::operator/(), tinysimd::details::long_simd< SimdType, Width >::operator/=(), tinysimd::details::long_simd< SimdType, Width >::operator/=(), tinysimd::details::long_simd< SimdType, Width >::operator[](), tinysimd::details::long_simd< SimdType, Width >::scatter(), tinysimd::sqrt(), tinysimd::details::long_simd< SimdType, Width >::store(), and tinysimd::details::long_simd< SimdType, Width >::store().
|
staticconstexpr |
Definition at line 158 of file tinysimd.hpp.
Referenced by tinysimd::details::long_simd< SimdType, Width >::operator[]().
|
staticconstexpr |
|
staticconstexpr |
Definition at line 160 of file tinysimd.hpp.
Referenced by tinysimd::abs(), tinysimd::details::long_simd< SimdType, Width >::broadcast(), tinysimd::details::long_simd< SimdType, Width >::fma(), tinysimd::details::long_simd< SimdType, Width >::fma(), tinysimd::details::long_simd< SimdType, Width >::fma(), tinysimd::details::long_simd< SimdType, Width >::gather(), tinysimd::details::long_simd< SimdType, Width >::load(), tinysimd::details::long_simd< SimdType, Width >::load(), tinysimd::log(), tinysimd::details::long_simd< SimdType, Width >::long_simd(), tinysimd::details::long_simd< SimdType, Width >::long_simd(), tinysimd::max(), tinysimd::min(), tinysimd::details::long_simd< SimdType, Width >::operator*=(), tinysimd::details::long_simd< SimdType, Width >::operator*=(), tinysimd::details::long_simd< SimdType, Width >::operator+=(), tinysimd::details::long_simd< SimdType, Width >::operator+=(), tinysimd::operator-(), tinysimd::operator-(), tinysimd::details::long_simd< SimdType, Width >::operator-=(), tinysimd::details::long_simd< SimdType, Width >::operator-=(), tinysimd::operator/(), tinysimd::details::long_simd< SimdType, Width >::operator/=(), tinysimd::details::long_simd< SimdType, Width >::operator/=(), tinysimd::details::long_simd< SimdType, Width >::scatter(), tinysimd::sqrt(), tinysimd::details::long_simd< SimdType, Width >::store(), and tinysimd::details::long_simd< SimdType, Width >::store().
|
staticconstexpr |
Definition at line 157 of file tinysimd.hpp.