Low-Level Abstraction of Memory Access
SoA.hpp File Reference
#include "Common.hpp"
#include <limits>
+ Include dependency graph for SoA.hpp:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  llama::mapping::SoA< TArrayExtents, TRecordDim, TBlobs, TSubArrayAlignment, TLinearizeArrayIndexFunctor, PermuteFieldsSingleBlob >
 
struct  llama::mapping::BindSoA< Blobs, SubArrayAlignment, LinearizeArrayIndexFunctor >
 

Namespaces

 llama
 
 llama::mapping
 

Typedefs

template<typename ArrayExtents , typename RecordDim , typename LinearizeArrayIndexFunctor = LinearizeArrayIndexRight>
using llama::mapping::AlignedSingleBlobSoA = SoA< ArrayExtents, RecordDim, Blobs::Single, SubArrayAlignment::Align, LinearizeArrayIndexFunctor >
 
template<typename ArrayExtents , typename RecordDim , typename LinearizeArrayIndexFunctor = LinearizeArrayIndexRight>
using llama::mapping::PackedSingleBlobSoA = SoA< ArrayExtents, RecordDim, Blobs::Single, SubArrayAlignment::Pack, LinearizeArrayIndexFunctor >
 
template<typename ArrayExtents , typename RecordDim , typename LinearizeArrayIndexFunctor = LinearizeArrayIndexRight>
using llama::mapping::MultiBlobSoA = SoA< ArrayExtents, RecordDim, Blobs::OnePerField, SubArrayAlignment::Pack, LinearizeArrayIndexFunctor >
 

Enumerations

enum class  llama::mapping::Blobs {
  llama::mapping::Single ,
  llama::mapping::OnePerField
}
 
enum class  llama::mapping::SubArrayAlignment {
  llama::mapping::Pack ,
  llama::mapping::Align
}
 

Functions

template<typename TArrayExtents , typename TRecordDim >
 llama::mapping::SoA (TArrayExtents, TRecordDim) -> SoA< TArrayExtents, TRecordDim >
 

Variables

template<typename Mapping >
constexpr bool llama::mapping::isSoA = false
 
template<typename ArrayExtents , typename RecordDim , Blobs Blobs, SubArrayAlignment SubArrayAlignment, typename LinearizeArrayIndexFunctor >
constexpr bool llama::mapping::isSoA< SoA< ArrayExtents, RecordDim, Blobs, SubArrayAlignment, LinearizeArrayIndexFunctor > > = true