![]() |
Low-Level Abstraction of Memory Access
|
#include <AoS.hpp>
Public Types | |
using | LinearizeArrayIndexFunctor = TLinearizeArrayIndexFunctor |
using | Permuter = PermuteFields< FlatRecordDim< TRecordDim > > |
![]() | |
using | ArrayExtents = TArrayExtents |
using | RecordDim = TRecordDim |
Public Member Functions | |
constexpr auto | blobSize (size_type) const -> size_type |
template<std::size_t... RecordCoords> | |
constexpr auto | blobNrAndOffset (typename Base::ArrayIndex ai, RecordCoord< RecordCoords... >={}) const -> NrAndOffset< size_type > |
![]() | |
constexpr | MappingBase ()=default |
constexpr | MappingBase (ArrayExtents extents, RecordDim={}) |
constexpr auto | extents () const -> ArrayExtents |
Static Public Attributes | |
static constexpr FieldAlignment | fieldAlignment = TFieldAlignment |
static constexpr std::size_t | blobCount = 1 |
Additional Inherited Members | |
![]() | |
using | ArrayIndex = typename ArrayExtents::Index |
using | size_type = typename ArrayExtents::value_type |
Array of struct mapping. Used to create a View via allocView.
TFieldAlignment | If Align, padding bytes are inserted to guarantee that struct members are properly aligned. If Pack, struct members are tightly packed. |
TLinearizeArrayIndexFunctor | Defines how the array dimensions should be mapped into linear numbers and how big the linear domain gets. |
PermuteFields | Defines how the record dimension's fields should be permuted. See PermuteFieldsInOrder, PermuteFieldsIncreasingAlignment, PermuteFieldsDecreasingAlignment and PermuteFieldsMinimizePadding. |
using llama::mapping::AoS< TArrayExtents, TRecordDim, TFieldAlignment, TLinearizeArrayIndexFunctor, PermuteFields >::LinearizeArrayIndexFunctor = TLinearizeArrayIndexFunctor |
using llama::mapping::AoS< TArrayExtents, TRecordDim, TFieldAlignment, TLinearizeArrayIndexFunctor, PermuteFields >::Permuter = PermuteFields<FlatRecordDim<TRecordDim> > |
|
inlineconstexpr |
|
inlineconstexpr |
|
inlinestaticconstexpr |
|
inlinestaticconstexpr |