template<typename T>
class gmx::internal::SimdArrayRef< T >
STL-like container for aligned SIMD type. Used as ArrayRef<SimdReal>.
Should provide the same interface as ArrayRef. Any missing functions should be added as needed. The pointer type (used e.g. for initialization) is a real pointer. The reference type (used e.g. for operator[] and iterator dereference) is SimdReference which executes the aligned load/store as is appropriate. For both iterator and element access, the access happens in blocks of SIMD width. Meaning that a[1] refers to the 2nd SIMD vector and thus reals 8-15 for 8-wide SIMD. The starting address has to be aligned and the length has to be multiple of the SIMD width.
- Template Parameters
-
T | SIMD type (e.g. SimdReal) |
|
using | size_type = size_t |
| Type for representing size of the container.
|
|
using | difference_type = std::ptrdiff_t |
| Type for representing difference between two container indices.
|
|
using | value_type = T |
| Type of values stored in the container.
|
|
using | pointer = SimdTraitsT< T > * |
| Pointer to a container element.
|
|
using | reference = internal::SimdReference< T > |
| Reference to a container element.
|
|
using | iterator = SimdIterator< T > |
| Iterator type for the container.
|
|
using | reverse_iterator = std::reverse_iterator< iterator > |
| Standard reverse iterator.
|
|