![]() |
Low-Level Abstraction of Memory Access
|
Classes | |
struct | FloatBitTraits |
struct | FloatBitTraits< float > |
struct | FloatBitTraits< double > |
struct | BitPackedFloatRef |
struct | BitPackedIntRef |
struct | BitPackedIntCommon |
struct | ByteswapProjection |
struct | ChangeTypeProjection |
struct | MakeProjectionPair |
struct | S |
struct | FieldAccessCountReference |
struct | NullReference |
struct | UnaryFunctionTraits |
struct | UnaryFunctionTraits< Ret(*)(Arg)> |
struct | MakeReplacerProj |
struct | ProjectionReference |
struct | PartitionFoldOpImpl |
struct | ReplaceTagListsByCoords |
struct | ReplaceTagListsByCoords< RecordDim, RecordCoord< RCs... > > |
struct | ReplaceTagListsByCoords< RecordDim, mp_list< Args... > > |
Typedefs | |
template<typename RecordDim > | |
using | StoredIntegralFor = std::conditional_t< mp_contains< FlatRecordDim< RecordDim >, double >::value, std::uint64_t, std::uint32_t > |
template<typename A , typename B > | |
using | HasLargerSize = mp_bool< sizeof(A)< sizeof(B)> |
template<typename RecordDim > | |
using | LargestIntegral = mp_max_element< FlatRecordDim< RecordDim >, HasLargerSize > |
template<typename RecordDim > | |
using | StoredUnsignedFor = std::conditional_t<(sizeof(LargestIntegral< RecordDim >) > sizeof(std::uint32_t)), std::uint64_t, std::uint32_t > |
template<typename T > | |
using | ReplaceByByteArray = std::byte[sizeof(T)] |
template<typename RecordDim > | |
using | SplitBytes = TransformLeaves< RecordDim, ReplaceByByteArray > |
template<typename T > | |
using | MakeByteswapProjectionPair = mp_list< T, ByteswapProjection< T > > |
template<typename RecordDim > | |
using | MakeByteswapProjectionMap = mp_transform< MakeByteswapProjectionPair, mp_unique< FlatRecordDim< RecordDim > >> |
template<typename RecordDim , typename ReplacementMap > | |
using | MakeProjectionMap = mp_transform< MakeProjectionPair< RecordDim >::template fn, ReplacementMap > |
template<typename A , typename B > | |
using | LessAlignment = std::bool_constant< alignof(A)< alignof(B)> |
template<typename A , typename B > | |
using | MoreAlignment = std::bool_constant<(alignof(A) > alignof(B))> |
template<typename ProjectionMap , typename Coord , typename RecordDimType > | |
using | ProjectionOrVoid = typename decltype(projectionOrVoidImpl< ProjectionMap, Coord, RecordDimType >())::type |
template<typename RecordDim , typename ProjectionMap > | |
using | ReplaceTypesByProjectionResults = TransformLeavesWithCoord< RecordDim, MakeReplacerProj< ProjectionMap >::template fn > |
template<typename Acc , typename TagList > | |
using | PartitionFoldOp = typename PartitionFoldOpImpl< Acc, TagList >::type |
Functions | |
template<typename Integral > | |
auto | repackFloat (Integral inFloat, unsigned inMantissaBits, unsigned inExponentBits, unsigned outMantissaBits, unsigned outExponentBits) -> Integral |
template<typename E , typename M > | |
auto | integBits (E e, M m) |
template<auto E, auto M> | |
auto | integBits (llama::internal::BoxedValue< Constant< E >>, llama::internal::BoxedValue< Constant< M >>) |
template<typename Integral > | |
constexpr auto | makeMask (Integral bits) -> Integral |
template<bool KeepSignBit, typename Integral , typename StoredIntegral > | |
constexpr auto | bitunpack (const StoredIntegral *ptr, StoredIntegral bitOffset, StoredIntegral bitCount) -> Integral |
template<bool KeepSignBit, typename StoredIntegral , typename Integral > | |
constexpr void | bitpack (StoredIntegral *ptr, StoredIntegral bitOffset, StoredIntegral bitCount, Integral value) |
template<typename Integral , typename StoredIntegral > | |
constexpr auto | bitunpack1 (const StoredIntegral *ptr, StoredIntegral bitOffset) -> Integral |
template<typename StoredIntegral , typename Integral > | |
constexpr void | bitpack1 (StoredIntegral *ptr, StoredIntegral bitOffset, Integral value) |
template<typename T > | |
auto | byteswap (T t) -> T |
template<typename CountType > | |
void | atomicInc (CountType &i) |
template<typename ProjectionMap , typename Coord , typename RecordDimType > | |
auto | projectionOrVoidImpl () |
template<typename... Fields, std::size_t FirstCoord, std::size_t... Coords> | |
auto | partitionRecordDim (Record< Fields... >, RecordCoord< FirstCoord, Coords... >) |
template<typename... Fields, typename... RCs> | |
auto | partitionRecordDim (Record< Fields... >, mp_list< RCs... >) |
Variables | |
template<typename RC , typename RecordCoordForMapping1 > | |
constexpr bool | isSelected = recordCoordCommonPrefixIsSame<RecordCoordForMapping1, RC> |
template<typename RC , typename... RecordCoordsForMapping1> | |
constexpr bool | isSelected< RC, mp_list< RecordCoordsForMapping1... > > = (isSelected<RC, RecordCoordsForMapping1> || ...) |
using llama::mapping::internal::HasLargerSize = typedef mp_bool<sizeof(A) < sizeof(B)> |
Definition at line 226 of file BitPackedInt.hpp.
using llama::mapping::internal::LargestIntegral = typedef mp_max_element<FlatRecordDim<RecordDim>, HasLargerSize> |
Definition at line 229 of file BitPackedInt.hpp.
using llama::mapping::internal::LessAlignment = typedef std::bool_constant<alignof(A) < alignof(B)> |
Definition at line 222 of file Common.hpp.
using llama::mapping::internal::MakeByteswapProjectionMap = typedef mp_transform<MakeByteswapProjectionPair, mp_unique<FlatRecordDim<RecordDim> >> |
Definition at line 57 of file Byteswap.hpp.
using llama::mapping::internal::MakeByteswapProjectionPair = typedef mp_list<T, ByteswapProjection<T> > |
Definition at line 54 of file Byteswap.hpp.
using llama::mapping::internal::MakeProjectionMap = typedef mp_transform<MakeProjectionPair<RecordDim>::template fn, ReplacementMap> |
Definition at line 45 of file ChangeType.hpp.
using llama::mapping::internal::MoreAlignment = typedef std::bool_constant<(alignof(A) > alignof(B))> |
Definition at line 225 of file Common.hpp.
using llama::mapping::internal::PartitionFoldOp = typedef typename PartitionFoldOpImpl<Acc, TagList>::type |
using llama::mapping::internal::ProjectionOrVoid = typedef typename decltype(projectionOrVoidImpl<ProjectionMap, Coord, RecordDimType>())::type |
Definition at line 39 of file Projection.hpp.
using llama::mapping::internal::ReplaceByByteArray = typedef std::byte[sizeof(T)] |
Definition at line 14 of file Bytesplit.hpp.
using llama::mapping::internal::ReplaceTypesByProjectionResults = typedef TransformLeavesWithCoord<RecordDim, MakeReplacerProj<ProjectionMap>::template fn> |
Definition at line 68 of file Projection.hpp.
using llama::mapping::internal::SplitBytes = typedef TransformLeaves<RecordDim, ReplaceByByteArray> |
Definition at line 17 of file Bytesplit.hpp.
using llama::mapping::internal::StoredIntegralFor = typedef std::conditional_t<mp_contains<FlatRecordDim<RecordDim>, double>::value, std::uint64_t, std::uint32_t> |
Definition at line 181 of file BitPackedFloat.hpp.
using llama::mapping::internal::StoredUnsignedFor = typedef std:: conditional_t<(sizeof(LargestIntegral<RecordDim>) > sizeof(std::uint32_t)), std::uint64_t, std::uint32_t> |
Definition at line 232 of file BitPackedInt.hpp.
|
inline |
Definition at line 249 of file Common.hpp.
|
inlineconstexpr |
Definition at line 74 of file BitPackedInt.hpp.
|
inlineconstexpr |
Definition at line 139 of file BitPackedInt.hpp.
|
inlineconstexpr |
Definition at line 31 of file BitPackedInt.hpp.
|
inlineconstexpr |
Definition at line 129 of file BitPackedInt.hpp.
|
inline |
Definition at line 17 of file Byteswap.hpp.
|
inline |
Definition at line 86 of file BitPackedFloat.hpp.
|
inline |
Definition at line 92 of file BitPackedFloat.hpp.
|
inlineconstexpr |
Definition at line 25 of file BitPackedInt.hpp.
auto llama::mapping::internal::partitionRecordDim | ( | Record< Fields... > | , |
mp_list< RCs... > | |||
) |
auto llama::mapping::internal::partitionRecordDim | ( | Record< Fields... > | , |
RecordCoord< FirstCoord, Coords... > | |||
) |
auto llama::mapping::internal::projectionOrVoidImpl | ( | ) |
Definition at line 28 of file Projection.hpp.
|
inline |
Definition at line 39 of file BitPackedFloat.hpp.
|
inlineconstexpr |
|
inlineconstexpr |