Low-Level Abstraction of Memory Access
llama::mapping::Bytesplit< TArrayExtents, TRecordDim, InnerMapping > Struct Template Reference

#include <Bytesplit.hpp>

+ Inheritance diagram for llama::mapping::Bytesplit< TArrayExtents, TRecordDim, InnerMapping >:
+ Collaboration diagram for llama::mapping::Bytesplit< TArrayExtents, TRecordDim, InnerMapping >:

Classes

struct  Reference
 

Public Types

using Inner = InnerMapping< TArrayExtents, internal::SplitBytes< TRecordDim > >
 
using ArrayExtents = typename Inner::ArrayExtents
 
using RecordDim = TRecordDim
 

Public Member Functions

constexpr Bytesplit (TArrayExtents extents, TRecordDim={})
 
template<typename... Args>
constexpr Bytesplit (std::tuple< Args... > innerMappingArgs, TRecordDim={})
 
template<std::size_t... RecordCoords, typename BlobArray >
constexpr auto compute (ArrayIndex ai, RecordCoord< RecordCoords... >, BlobArray &blobs) const
 

Static Public Member Functions

template<std::size_t... RecordCoords>
static constexpr auto isComputed (RecordCoord< RecordCoords... >)
 

Detailed Description

template<typename TArrayExtents, typename TRecordDim, template< typename, typename > typename InnerMapping>
struct llama::mapping::Bytesplit< TArrayExtents, TRecordDim, InnerMapping >

Meta mapping splitting each field in the record dimension into an array of bytes and mapping the resulting record dimension using a further mapping.

Definition at line 24 of file Bytesplit.hpp.

Member Typedef Documentation

◆ ArrayExtents

template<typename TArrayExtents , typename TRecordDim , template< typename, typename > typename InnerMapping>
using llama::mapping::Bytesplit< TArrayExtents, TRecordDim, InnerMapping >::ArrayExtents = typename Inner::ArrayExtents

Definition at line 28 of file Bytesplit.hpp.

◆ Inner

template<typename TArrayExtents , typename TRecordDim , template< typename, typename > typename InnerMapping>
using llama::mapping::Bytesplit< TArrayExtents, TRecordDim, InnerMapping >::Inner = InnerMapping<TArrayExtents, internal::SplitBytes<TRecordDim> >

Definition at line 26 of file Bytesplit.hpp.

◆ RecordDim

template<typename TArrayExtents , typename TRecordDim , template< typename, typename > typename InnerMapping>
using llama::mapping::Bytesplit< TArrayExtents, TRecordDim, InnerMapping >::RecordDim = TRecordDim

Definition at line 29 of file Bytesplit.hpp.

Constructor & Destructor Documentation

◆ Bytesplit() [1/2]

template<typename TArrayExtents , typename TRecordDim , template< typename, typename > typename InnerMapping>
constexpr llama::mapping::Bytesplit< TArrayExtents, TRecordDim, InnerMapping >::Bytesplit ( TArrayExtents  extents,
TRecordDim  = {} 
)
inlineexplicitconstexpr

Definition at line 40 of file Bytesplit.hpp.

◆ Bytesplit() [2/2]

template<typename TArrayExtents , typename TRecordDim , template< typename, typename > typename InnerMapping>
template<typename... Args>
constexpr llama::mapping::Bytesplit< TArrayExtents, TRecordDim, InnerMapping >::Bytesplit ( std::tuple< Args... >  innerMappingArgs,
TRecordDim  = {} 
)
inlineexplicitconstexpr

Definition at line 45 of file Bytesplit.hpp.

Member Function Documentation

◆ compute()

template<typename TArrayExtents , typename TRecordDim , template< typename, typename > typename InnerMapping>
template<std::size_t... RecordCoords, typename BlobArray >
constexpr auto llama::mapping::Bytesplit< TArrayExtents, TRecordDim, InnerMapping >::compute ( ArrayIndex  ai,
RecordCoord< RecordCoords... >  ,
BlobArray &  blobs 
) const
inlineconstexpr

Definition at line 126 of file Bytesplit.hpp.

◆ isComputed()

template<typename TArrayExtents , typename TRecordDim , template< typename, typename > typename InnerMapping>
template<std::size_t... RecordCoords>
static constexpr auto llama::mapping::Bytesplit< TArrayExtents, TRecordDim, InnerMapping >::isComputed ( RecordCoord< RecordCoords... >  )
inlinestaticconstexpr

Definition at line 51 of file Bytesplit.hpp.


The documentation for this struct was generated from the following file: