![]() |
Low-Level Abstraction of Memory Access
|
#include <Projection.hpp>
Public Types | |
using | Inner = InnerMapping< TArrayExtents, internal::ReplaceTypesByProjectionResults< TRecordDim, TProjectionMap > > |
using | ProjectionMap = TProjectionMap |
using | ArrayExtents = typename Inner::ArrayExtents |
using | RecordDim = TRecordDim |
Public Member Functions | |
template<std::size_t... RecordCoords, typename BlobArray > | |
constexpr auto | compute (ArrayIndex ai, RecordCoord< RecordCoords... > rc, BlobArray &blobs) const |
template<std::size_t... RecordCoords> | |
constexpr auto | blobNrAndOffset (ArrayIndex ai, RecordCoord< RecordCoords... > rc={}) const -> NrAndOffset< typename ArrayExtents::value_type > |
Static Public Member Functions | |
template<typename RecordCoord > | |
static constexpr auto | isComputed (RecordCoord) -> bool |
Protected Types | |
using | ArrayIndex = typename ArrayExtents::Index |
Mapping that projects types in the record domain to different types. Projections are executed during load and store.
TProjectionMap | A type list of binary type lists (a map) specifing a projection (map value) for a type or the type at a RecordCoord (map key). A projection is a type with two functions: struct Proj { static auto load(auto&& fromMem); static auto store(auto&& toMem); }; |
Definition at line 131 of file Projection.hpp.
using llama::mapping::Projection< TArrayExtents, TRecordDim, InnerMapping, TProjectionMap >::ArrayExtents = typename Inner::ArrayExtents |
Definition at line 137 of file Projection.hpp.
|
protected |
Definition at line 145 of file Projection.hpp.
using llama::mapping::Projection< TArrayExtents, TRecordDim, InnerMapping, TProjectionMap >::Inner = InnerMapping<TArrayExtents, internal::ReplaceTypesByProjectionResults<TRecordDim, TProjectionMap> > |
Definition at line 134 of file Projection.hpp.
using llama::mapping::Projection< TArrayExtents, TRecordDim, InnerMapping, TProjectionMap >::ProjectionMap = TProjectionMap |
Definition at line 136 of file Projection.hpp.
using llama::mapping::Projection< TArrayExtents, TRecordDim, InnerMapping, TProjectionMap >::RecordDim = TRecordDim |
Definition at line 138 of file Projection.hpp.
|
inlineconstexpr |
Definition at line 174 of file Projection.hpp.
|
inlineconstexpr |
Definition at line 156 of file Projection.hpp.
|
inlinestaticconstexpr |
Definition at line 149 of file Projection.hpp.