Low-Level Abstraction of Memory Access
llama::mapping Namespace Reference

Namespaces

 internal
 

Classes

struct  AoS
 
struct  BindAoS
 
struct  AoSoA
 
struct  BindAoSoA
 
struct  BitPackedFloatSoA
 
struct  BindBitPackedFloatSoA
 
struct  BitPackedFloatAoS
 
struct  BindBitPackedFloatAoS
 
struct  BitPackedIntSoA
 
struct  BindBitPackedIntSoA
 
struct  BitPackedIntAoS
 
struct  BindBitPackedIntAoS
 
struct  Bytesplit
 
struct  BindBytesplit
 
struct  Byteswap
 Mapping that swaps the byte order of all values when loading/storing. More...
 
struct  BindByteswap
 
struct  ChangeType
 
struct  BindChangeType
 
struct  MappingBase
 
struct  LinearizeArrayIndexRight
 
struct  LinearizeArrayIndexLeft
 
struct  LinearizeArrayIndexMorton
 Functor that maps an ArrayIndex into linear numbers using the Z-order space filling curve (Morton codes). More...
 
struct  PermuteFieldsInOrder
 Retains the order of the record dimension's fields. More...
 
struct  PermuteFieldsSorted
 
struct  AccessCounts
 
struct  FieldAccessCount
 
struct  Heatmap
 
struct  Null
 
struct  One
 
struct  BindOne
 
struct  PermuteArrayIndex
 
struct  Projection
 
struct  BindProjection
 
struct  SoA
 
struct  BindSoA
 
struct  Split
 
struct  BindSplit
 

Typedefs

template<typename ArrayExtents , typename RecordDim , typename LinearizeArrayIndexFunctor = LinearizeArrayIndexRight>
using AlignedAoS = AoS< ArrayExtents, RecordDim, FieldAlignment::Align, LinearizeArrayIndexFunctor >
 
template<typename ArrayExtents , typename RecordDim , typename LinearizeArrayIndexFunctor = LinearizeArrayIndexRight>
using MinAlignedAoS = AoS< ArrayExtents, RecordDim, FieldAlignment::Align, LinearizeArrayIndexFunctor, PermuteFieldsMinimizePadding >
 
template<typename ArrayExtents , typename RecordDim , typename LinearizeArrayIndexFunctor = LinearizeArrayIndexRight>
using PackedAoS = AoS< ArrayExtents, RecordDim, FieldAlignment::Pack, LinearizeArrayIndexFunctor >
 
using LinearizeArrayIndexCpp = LinearizeArrayIndexRight
 
using LinearizeArrayIndexFortran = LinearizeArrayIndexLeft
 
template<typename FlatRecordDim >
using PermuteFieldsIncreasingAlignment = PermuteFieldsSorted< FlatRecordDim, internal::LessAlignment >
 Sorts the record dimension fields by increasing alignment of its fields. More...
 
template<typename FlatRecordDim >
using PermuteFieldsDecreasingAlignment = PermuteFieldsSorted< FlatRecordDim, internal::MoreAlignment >
 Sorts the record dimension fields by decreasing alignment of its fields. More...
 
template<typename FlatRecordDim >
using PermuteFieldsMinimizePadding = PermuteFieldsIncreasingAlignment< FlatRecordDim >
 Sorts the record dimension fields by the alignment of its fields to minimize padding. More...
 
template<typename ArrayExtents , typename RecordDim >
using AlignedOne = One< ArrayExtents, RecordDim, FieldAlignment::Align, PermuteFieldsInOrder >
 
template<typename ArrayExtents , typename RecordDim >
using MinAlignedOne = One< ArrayExtents, RecordDim, FieldAlignment::Align, PermuteFieldsMinimizePadding >
 
template<typename ArrayExtents , typename RecordDim >
using PackedOne = One< ArrayExtents, RecordDim, FieldAlignment::Pack, PermuteFieldsInOrder >
 
template<typename ArrayExtents , typename RecordDim , typename LinearizeArrayIndexFunctor = LinearizeArrayIndexRight>
using AlignedSingleBlobSoA = SoA< ArrayExtents, RecordDim, Blobs::Single, SubArrayAlignment::Align, LinearizeArrayIndexFunctor >
 
template<typename ArrayExtents , typename RecordDim , typename LinearizeArrayIndexFunctor = LinearizeArrayIndexRight>
using PackedSingleBlobSoA = SoA< ArrayExtents, RecordDim, Blobs::Single, SubArrayAlignment::Pack, LinearizeArrayIndexFunctor >
 
template<typename ArrayExtents , typename RecordDim , typename LinearizeArrayIndexFunctor = LinearizeArrayIndexRight>
using MultiBlobSoA = SoA< ArrayExtents, RecordDim, Blobs::OnePerField, SubArrayAlignment::Pack, LinearizeArrayIndexFunctor >
 

Enumerations

enum class  SignBit {
  Keep ,
  Discard
}
 
enum class  FieldAlignment {
  Pack ,
  Align
}
 
enum class  Blobs {
  Single ,
  OnePerField
}
 
enum class  SubArrayAlignment {
  Pack ,
  Align
}
 

Functions

template<typename TArrayExtents , typename TRecordDim >
 AoS (TArrayExtents, TRecordDim) -> AoS< TArrayExtents, TRecordDim >
 
template<typename Mapping >
 PermuteArrayIndex (Mapping) -> PermuteArrayIndex< Mapping >
 
template<typename TArrayExtents , typename TRecordDim >
 SoA (TArrayExtents, TRecordDim) -> SoA< TArrayExtents, TRecordDim >
 

Variables

template<typename Mapping >
constexpr bool isAoS = false
 
template<typename ArrayExtents , typename RecordDim , FieldAlignment FieldAlignment, typename LinearizeArrayIndexFunctor , template< typename > typename PermuteFields>
constexpr bool isAoS< AoS< ArrayExtents, RecordDim, FieldAlignment, LinearizeArrayIndexFunctor, PermuteFields > > = true
 
template<typename RecordDim , std::size_t VectorRegisterBits>
constexpr std::size_t maxLanes
 
template<typename Mapping >
constexpr bool isAoSoA = false
 
template<typename AD , typename RD , typename AD::value_type L, FieldAlignment A, typename Lin , template< typename > typename Perm>
constexpr bool isAoSoA< AoSoA< AD, RD, L, A, Lin, Perm > > = true
 
template<typename Mapping >
constexpr bool isBitPackedFloatSoA = false
 
template<typename... Ts>
constexpr bool isBitPackedFloatSoA< BitPackedFloatSoA< Ts... > > = true
 
template<typename Mapping >
constexpr bool isBitPackedFloatAoS = false
 
template<typename ArrayExtents , typename RecordDim , typename ExponentBits , typename MantissaBits , typename LinearizeArrayIndexFunctor , template< typename > typename PermuteFields, typename StoredIntegral >
constexpr bool isBitPackedFloatAoS< BitPackedFloatAoS< ArrayExtents, RecordDim, ExponentBits, MantissaBits, LinearizeArrayIndexFunctor, PermuteFields, StoredIntegral > > = true
 
template<typename Mapping >
constexpr bool isBitPackedIntSoA = false
 
template<typename ArrayExtents , typename RecordDim , typename Bits , SignBit SignBit, typename LinearizeArrayIndexFunctor , typename StoredIntegral >
constexpr bool isBitPackedIntSoA< BitPackedIntSoA< ArrayExtents, RecordDim, Bits, SignBit, LinearizeArrayIndexFunctor, StoredIntegral > > = true
 
template<typename Mapping >
constexpr bool isBitPackedIntAoS = false
 
template<typename ArrayExtents , typename RecordDim , typename Bits , SignBit SignBit, typename LinearizeArrayIndexFunctor , template< typename > typename PermuteFields, typename StoredIntegral >
constexpr bool isBitPackedIntAoS< BitPackedIntAoS< ArrayExtents, RecordDim, Bits, SignBit, LinearizeArrayIndexFunctor, PermuteFields, StoredIntegral > > = true
 
template<typename Mapping >
constexpr bool isBytesplit = false
 
template<typename TArrayExtents , typename TRecordDim , template< typename, typename > typename InnerMapping>
constexpr bool isBytesplit< Bytesplit< TArrayExtents, TRecordDim, InnerMapping > > = true
 
template<typename Mapping >
constexpr bool isByteswap = false
 
template<typename TArrayExtents , typename TRecordDim , template< typename, typename > typename InnerMapping>
constexpr bool isByteswap< Byteswap< TArrayExtents, TRecordDim, InnerMapping > > = true
 
template<typename Mapping >
constexpr bool isChangeType = false
 
template<typename TArrayExtents , typename TRecordDim , template< typename, typename > typename InnerMapping, typename ReplacementMap >
constexpr bool isChangeType< ChangeType< TArrayExtents, TRecordDim, InnerMapping, ReplacementMap > > = true
 
template<typename Mapping >
constexpr bool isFieldAccessCount = false
 
template<typename Mapping , typename CountType , bool MyCodeHandlesProxyReferences>
constexpr bool isFieldAccessCount< FieldAccessCount< Mapping, CountType, MyCodeHandlesProxyReferences > > = true
 
template<typename Mapping >
constexpr bool isHeatmap = false
 
template<typename Mapping , typename Mapping::ArrayExtents::value_type Granularity, typename CountType >
constexpr bool isHeatmap< Heatmap< Mapping, Granularity, CountType > > = true
 
template<typename Mapping >
constexpr bool isNull = false
 
template<typename ArrayExtents , typename RecordDim >
constexpr bool isNull< Null< ArrayExtents, RecordDim > > = true
 
template<typename Mapping >
constexpr bool isOne = false
 
template<typename ArrayExtents , typename RecordDim , FieldAlignment FieldAlignment, template< typename > typename PermuteFields>
constexpr bool isOne< One< ArrayExtents, RecordDim, FieldAlignment, PermuteFields > > = true
 
template<typename Mapping >
constexpr bool isPermuteArrayIndex = false
 
template<typename Mapping , std::size_t... Permutation>
constexpr bool isPermuteArrayIndex< PermuteArrayIndex< Mapping, Permutation... > > = true
 
template<typename Mapping >
constexpr bool isProjection = false
 
template<typename TArrayExtents , typename TRecordDim , template< typename, typename > typename InnerMapping, typename ReplacementMap >
constexpr bool isProjection< Projection< TArrayExtents, TRecordDim, InnerMapping, ReplacementMap > > = true
 
template<typename Mapping >
constexpr bool isSoA = false
 
template<typename ArrayExtents , typename RecordDim , Blobs Blobs, SubArrayAlignment SubArrayAlignment, typename LinearizeArrayIndexFunctor >
constexpr bool isSoA< SoA< ArrayExtents, RecordDim, Blobs, SubArrayAlignment, LinearizeArrayIndexFunctor > > = true
 
template<typename Mapping >
constexpr bool isSplit = false
 
template<typename ArrayExtents , typename RecordDim , typename SelectorForMapping1 , template< typename... > typename MappingTemplate1, template< typename... > typename MappingTemplate2, bool SeparateBlobs>
constexpr bool isSplit< Split< ArrayExtents, RecordDim, SelectorForMapping1, MappingTemplate1, MappingTemplate2, SeparateBlobs > > = true
 

Typedef Documentation

◆ AlignedAoS

template<typename ArrayExtents , typename RecordDim , typename LinearizeArrayIndexFunctor = LinearizeArrayIndexRight>
using llama::mapping::AlignedAoS = typedef AoS<ArrayExtents, RecordDim, FieldAlignment::Align, LinearizeArrayIndexFunctor>

Array of struct mapping preserving the alignment of the field types by inserting padding.

See also
AoS

Definition at line 76 of file AoS.hpp.

◆ AlignedOne

template<typename ArrayExtents , typename RecordDim >
using llama::mapping::AlignedOne = typedef One<ArrayExtents, RecordDim, FieldAlignment::Align, PermuteFieldsInOrder>

One mapping preserving the alignment of the field types by inserting padding.

See also
One

Definition at line 75 of file One.hpp.

◆ AlignedSingleBlobSoA

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

Struct of array mapping storing the entire layout in a single blob. The starts of the sub arrays are aligned by inserting padding.

See also
SoA

Definition at line 202 of file SoA.hpp.

◆ LinearizeArrayIndexCpp

◆ LinearizeArrayIndexFortran

◆ MinAlignedAoS

template<typename ArrayExtents , typename RecordDim , typename LinearizeArrayIndexFunctor = LinearizeArrayIndexRight>
using llama::mapping::MinAlignedAoS = typedef AoS< ArrayExtents, RecordDim, FieldAlignment::Align, LinearizeArrayIndexFunctor, PermuteFieldsMinimizePadding>

Array of struct mapping preserving the alignment of the field types by inserting padding and permuting the field order to minimize this padding.

See also
AoS

Definition at line 82 of file AoS.hpp.

◆ MinAlignedOne

template<typename ArrayExtents , typename RecordDim >
using llama::mapping::MinAlignedOne = typedef One<ArrayExtents, RecordDim, FieldAlignment::Align, PermuteFieldsMinimizePadding>

One mapping preserving the alignment of the field types by inserting padding and permuting the field order to minimize this padding.

See also
One

Definition at line 82 of file One.hpp.

◆ MultiBlobSoA

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

Struct of array mapping storing each attribute of the record dimension in a separate blob.

See also
SoA

Definition at line 216 of file SoA.hpp.

◆ PackedAoS

template<typename ArrayExtents , typename RecordDim , typename LinearizeArrayIndexFunctor = LinearizeArrayIndexRight>
using llama::mapping::PackedAoS = typedef AoS<ArrayExtents, RecordDim, FieldAlignment::Pack, LinearizeArrayIndexFunctor>

Array of struct mapping packing the field types tightly, violating the type's alignment requirements.

See also
AoS

Definition at line 93 of file AoS.hpp.

◆ PackedOne

template<typename ArrayExtents , typename RecordDim >
using llama::mapping::PackedOne = typedef One<ArrayExtents, RecordDim, FieldAlignment::Pack, PermuteFieldsInOrder>

One mapping packing the field types tightly, violating the types' alignment requirements.

See also
One

Definition at line 88 of file One.hpp.

◆ PackedSingleBlobSoA

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

Struct of array mapping storing the entire layout in a single blob. The sub arrays are tightly packed, violating the type's alignment requirements.

See also
SoA

Definition at line 209 of file SoA.hpp.

◆ PermuteFieldsDecreasingAlignment

Sorts the record dimension fields by decreasing alignment of its fields.

Definition at line 236 of file Common.hpp.

◆ PermuteFieldsIncreasingAlignment

Sorts the record dimension fields by increasing alignment of its fields.

Definition at line 231 of file Common.hpp.

◆ PermuteFieldsMinimizePadding

Sorts the record dimension fields by the alignment of its fields to minimize padding.

Definition at line 241 of file Common.hpp.

Enumeration Type Documentation

◆ Blobs

enum llama::mapping::Blobs
strong
Enumerator
Single 
OnePerField 

Definition at line 13 of file SoA.hpp.

◆ FieldAlignment

Enumerator
Pack 
Align 

Definition at line 271 of file Common.hpp.

◆ SignBit

Enumerator
Keep 
Discard 

Definition at line 16 of file BitPackedInt.hpp.

◆ SubArrayAlignment

Enumerator
Pack 
Align 

Definition at line 20 of file SoA.hpp.

Function Documentation

◆ AoS()

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

◆ PermuteArrayIndex()

template<typename Mapping >
llama::mapping::PermuteArrayIndex ( Mapping  ) -> PermuteArrayIndex< Mapping >

◆ SoA()

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

Variable Documentation

◆ isAoS

template<typename Mapping >
constexpr bool llama::mapping::isAoS = false
inlineconstexpr

Definition at line 109 of file AoS.hpp.

◆ isAoS< AoS< ArrayExtents, RecordDim, FieldAlignment, LinearizeArrayIndexFunctor, PermuteFields > >

template<typename ArrayExtents , typename RecordDim , FieldAlignment FieldAlignment, typename LinearizeArrayIndexFunctor , template< typename > typename PermuteFields>
constexpr bool llama::mapping::isAoS< AoS< ArrayExtents, RecordDim, FieldAlignment, LinearizeArrayIndexFunctor, PermuteFields > > = true
inlineconstexpr

Definition at line 119 of file AoS.hpp.

◆ isAoSoA

template<typename Mapping >
constexpr bool llama::mapping::isAoSoA = false
inlineconstexpr

Definition at line 125 of file AoSoA.hpp.

◆ isAoSoA< AoSoA< AD, RD, L, A, Lin, Perm > >

template<typename AD , typename RD , typename AD::value_type L, FieldAlignment A, typename Lin , template< typename > typename Perm>
constexpr bool llama::mapping::isAoSoA< AoSoA< AD, RD, L, A, Lin, Perm > > = true
inlineconstexpr

Definition at line 136 of file AoSoA.hpp.

◆ isBitPackedFloatAoS

template<typename Mapping >
constexpr bool llama::mapping::isBitPackedFloatAoS = false
inlineconstexpr

Definition at line 434 of file BitPackedFloat.hpp.

◆ isBitPackedFloatAoS< BitPackedFloatAoS< ArrayExtents, RecordDim, ExponentBits, MantissaBits, LinearizeArrayIndexFunctor, PermuteFields, StoredIntegral > >

template<typename ArrayExtents , typename RecordDim , typename ExponentBits , typename MantissaBits , typename LinearizeArrayIndexFunctor , template< typename > typename PermuteFields, typename StoredIntegral >
constexpr bool llama::mapping::isBitPackedFloatAoS< BitPackedFloatAoS< ArrayExtents, RecordDim, ExponentBits, MantissaBits, LinearizeArrayIndexFunctor, PermuteFields, StoredIntegral > > = true
inlineconstexpr

Definition at line 446 of file BitPackedFloat.hpp.

◆ isBitPackedFloatSoA

template<typename Mapping >
constexpr bool llama::mapping::isBitPackedFloatSoA = false
inlineconstexpr

Definition at line 310 of file BitPackedFloat.hpp.

◆ isBitPackedFloatSoA< BitPackedFloatSoA< Ts... > >

template<typename... Ts>
constexpr bool llama::mapping::isBitPackedFloatSoA< BitPackedFloatSoA< Ts... > > = true
inlineconstexpr

Definition at line 314 of file BitPackedFloat.hpp.

◆ isBitPackedIntAoS

template<typename Mapping >
constexpr bool llama::mapping::isBitPackedIntAoS = false
inlineconstexpr

Definition at line 557 of file BitPackedInt.hpp.

◆ isBitPackedIntAoS< BitPackedIntAoS< ArrayExtents, RecordDim, Bits, SignBit, LinearizeArrayIndexFunctor, PermuteFields, StoredIntegral > >

template<typename ArrayExtents , typename RecordDim , typename Bits , SignBit SignBit, typename LinearizeArrayIndexFunctor , template< typename > typename PermuteFields, typename StoredIntegral >
constexpr bool llama::mapping::isBitPackedIntAoS< BitPackedIntAoS< ArrayExtents, RecordDim, Bits, SignBit, LinearizeArrayIndexFunctor, PermuteFields, StoredIntegral > > = true
inlineconstexpr

Definition at line 568 of file BitPackedInt.hpp.

◆ isBitPackedIntSoA

template<typename Mapping >
constexpr bool llama::mapping::isBitPackedIntSoA = false
inlineconstexpr

Definition at line 439 of file BitPackedInt.hpp.

◆ isBitPackedIntSoA< BitPackedIntSoA< ArrayExtents, RecordDim, Bits, SignBit, LinearizeArrayIndexFunctor, StoredIntegral > >

template<typename ArrayExtents , typename RecordDim , typename Bits , SignBit SignBit, typename LinearizeArrayIndexFunctor , typename StoredIntegral >
constexpr bool llama::mapping::isBitPackedIntSoA< BitPackedIntSoA< ArrayExtents, RecordDim, Bits, SignBit, LinearizeArrayIndexFunctor, StoredIntegral > > = true
inlineconstexpr

Definition at line 449 of file BitPackedInt.hpp.

◆ isBytesplit

template<typename Mapping >
constexpr bool llama::mapping::isBytesplit = false
inlineconstexpr

Definition at line 145 of file Bytesplit.hpp.

◆ isBytesplit< Bytesplit< TArrayExtents, TRecordDim, InnerMapping > >

template<typename TArrayExtents , typename TRecordDim , template< typename, typename > typename InnerMapping>
constexpr bool llama::mapping::isBytesplit< Bytesplit< TArrayExtents, TRecordDim, InnerMapping > > = true
inlineconstexpr

Definition at line 149 of file Bytesplit.hpp.

◆ isByteswap

template<typename Mapping >
constexpr bool llama::mapping::isByteswap = false
inlineconstexpr

Definition at line 85 of file Byteswap.hpp.

◆ isByteswap< Byteswap< TArrayExtents, TRecordDim, InnerMapping > >

template<typename TArrayExtents , typename TRecordDim , template< typename, typename > typename InnerMapping>
constexpr bool llama::mapping::isByteswap< Byteswap< TArrayExtents, TRecordDim, InnerMapping > > = true
inlineconstexpr

Definition at line 89 of file Byteswap.hpp.

◆ isChangeType

template<typename Mapping >
constexpr bool llama::mapping::isChangeType = false
inlineconstexpr

Definition at line 85 of file ChangeType.hpp.

◆ isChangeType< ChangeType< TArrayExtents, TRecordDim, InnerMapping, ReplacementMap > >

template<typename TArrayExtents , typename TRecordDim , template< typename, typename > typename InnerMapping, typename ReplacementMap >
constexpr bool llama::mapping::isChangeType< ChangeType< TArrayExtents, TRecordDim, InnerMapping, ReplacementMap > > = true
inlineconstexpr

Definition at line 94 of file ChangeType.hpp.

◆ isFieldAccessCount

template<typename Mapping >
constexpr bool llama::mapping::isFieldAccessCount = false
inlineconstexpr

Definition at line 370 of file FieldAccessCount.hpp.

◆ isFieldAccessCount< FieldAccessCount< Mapping, CountType, MyCodeHandlesProxyReferences > >

template<typename Mapping , typename CountType , bool MyCodeHandlesProxyReferences>
constexpr bool llama::mapping::isFieldAccessCount< FieldAccessCount< Mapping, CountType, MyCodeHandlesProxyReferences > > = true
inlineconstexpr

Definition at line 374 of file FieldAccessCount.hpp.

◆ isHeatmap

template<typename Mapping >
constexpr bool llama::mapping::isHeatmap = false
inlineconstexpr

Definition at line 230 of file Heatmap.hpp.

◆ isHeatmap< Heatmap< Mapping, Granularity, CountType > >

template<typename Mapping , typename Mapping::ArrayExtents::value_type Granularity, typename CountType >
constexpr bool llama::mapping::isHeatmap< Heatmap< Mapping, Granularity, CountType > > = true
inlineconstexpr

Definition at line 234 of file Heatmap.hpp.

◆ isNull

template<typename Mapping >
constexpr bool llama::mapping::isNull = false
inlineconstexpr

Definition at line 70 of file Null.hpp.

◆ isNull< Null< ArrayExtents, RecordDim > >

template<typename ArrayExtents , typename RecordDim >
constexpr bool llama::mapping::isNull< Null< ArrayExtents, RecordDim > > = true
inlineconstexpr

Definition at line 74 of file Null.hpp.

◆ isOne

template<typename Mapping >
constexpr bool llama::mapping::isOne = false
inlineconstexpr

Definition at line 104 of file One.hpp.

◆ isOne< One< ArrayExtents, RecordDim, FieldAlignment, PermuteFields > >

template<typename ArrayExtents , typename RecordDim , FieldAlignment FieldAlignment, template< typename > typename PermuteFields>
constexpr bool llama::mapping::isOne< One< ArrayExtents, RecordDim, FieldAlignment, PermuteFields > > = true
inlineconstexpr

Definition at line 113 of file One.hpp.

◆ isPermuteArrayIndex

template<typename Mapping >
constexpr bool llama::mapping::isPermuteArrayIndex = false
inlineconstexpr

Definition at line 63 of file PermuteArrayIndex.hpp.

◆ isPermuteArrayIndex< PermuteArrayIndex< Mapping, Permutation... > >

template<typename Mapping , std::size_t... Permutation>
constexpr bool llama::mapping::isPermuteArrayIndex< PermuteArrayIndex< Mapping, Permutation... > > = true
inlineconstexpr

Definition at line 67 of file PermuteArrayIndex.hpp.

◆ isProjection

template<typename Mapping >
constexpr bool llama::mapping::isProjection = false
inlineconstexpr

Definition at line 194 of file Projection.hpp.

◆ isProjection< Projection< TArrayExtents, TRecordDim, InnerMapping, ReplacementMap > >

template<typename TArrayExtents , typename TRecordDim , template< typename, typename > typename InnerMapping, typename ReplacementMap >
constexpr bool llama::mapping::isProjection< Projection< TArrayExtents, TRecordDim, InnerMapping, ReplacementMap > > = true
inlineconstexpr

Definition at line 203 of file Projection.hpp.

◆ isSoA

template<typename Mapping >
constexpr bool llama::mapping::isSoA = false
inlineconstexpr

Definition at line 234 of file SoA.hpp.

◆ isSoA< SoA< ArrayExtents, RecordDim, Blobs, SubArrayAlignment, LinearizeArrayIndexFunctor > >

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

Definition at line 243 of file SoA.hpp.

◆ isSplit

template<typename Mapping >
constexpr bool llama::mapping::isSplit = false
inlineconstexpr

Definition at line 243 of file Split.hpp.

◆ isSplit< Split< ArrayExtents, RecordDim, SelectorForMapping1, MappingTemplate1, MappingTemplate2, SeparateBlobs > >

template<typename ArrayExtents , typename RecordDim , typename SelectorForMapping1 , template< typename... > typename MappingTemplate1, template< typename... > typename MappingTemplate2, bool SeparateBlobs>
constexpr bool llama::mapping::isSplit< Split< ArrayExtents, RecordDim, SelectorForMapping1, MappingTemplate1, MappingTemplate2, SeparateBlobs > > = true
inlineconstexpr

Definition at line 255 of file Split.hpp.

◆ maxLanes

template<typename RecordDim , std::size_t VectorRegisterBits>
constexpr std::size_t llama::mapping::maxLanes
inlineconstexpr

The maximum number of vector lanes that can be used to fetch each leaf type in the record dimension into a vector register of the given size in bits.

Definition at line 17 of file AoSoA.hpp.