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

Go to the source code of this file.

Classes

struct  llama::mapping::MappingBase< TArrayExtents, TRecordDim >
 
struct  llama::mapping::LinearizeArrayIndexRight
 
struct  llama::mapping::LinearizeArrayIndexLeft
 
struct  llama::mapping::LinearizeArrayIndexMorton
 Functor that maps an ArrayIndex into linear numbers using the Z-order space filling curve (Morton codes). More...
 
struct  llama::mapping::PermuteFieldsInOrder< TFlatRecordDim >
 Retains the order of the record dimension's fields. More...
 
struct  llama::mapping::PermuteFieldsSorted< FlatOrigRecordDim, Less >
 

Namespaces

 llama
 
 llama::mapping
 
 llama::mapping::internal
 

Typedefs

using llama::mapping::LinearizeArrayIndexCpp = LinearizeArrayIndexRight
 
using llama::mapping::LinearizeArrayIndexFortran = LinearizeArrayIndexLeft
 
template<typename A , typename B >
using llama::mapping::internal::LessAlignment = std::bool_constant< alignof(A)< alignof(B)>
 
template<typename A , typename B >
using llama::mapping::internal::MoreAlignment = std::bool_constant<(alignof(A) > alignof(B))>
 
template<typename FlatRecordDim >
using llama::mapping::PermuteFieldsIncreasingAlignment = PermuteFieldsSorted< FlatRecordDim, internal::LessAlignment >
 Sorts the record dimension fields by increasing alignment of its fields. More...
 
template<typename FlatRecordDim >
using llama::mapping::PermuteFieldsDecreasingAlignment = PermuteFieldsSorted< FlatRecordDim, internal::MoreAlignment >
 Sorts the record dimension fields by decreasing alignment of its fields. More...
 
template<typename FlatRecordDim >
using llama::mapping::PermuteFieldsMinimizePadding = PermuteFieldsIncreasingAlignment< FlatRecordDim >
 Sorts the record dimension fields by the alignment of its fields to minimize padding. More...
 

Enumerations

enum class  llama::mapping::FieldAlignment {
  llama::mapping::Pack ,
  llama::mapping::Align
}
 

Functions

template<typename CountType >
void llama::mapping::internal::atomicInc (CountType &i)