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.
|
| |