![]() |
Low-Level Abstraction of Memory Access
|
#include <BitPackedInt.hpp>
Inheritance diagram for llama::mapping::BitPackedIntSoA< TArrayExtents, TRecordDim, Bits, SignBit, TLinearizeArrayIndexFunctor, TStoredIntegral >:
Collaboration diagram for llama::mapping::BitPackedIntSoA< TArrayExtents, TRecordDim, Bits, SignBit, TLinearizeArrayIndexFunctor, TStoredIntegral >:Public Types | |
| using | VHBits = typename Base::VHBits |
| using | Base = MappingBase< TArrayExtents, TRecordDim > |
| using | size_type = typename TArrayExtents::value_type |
Public Types inherited from llama::mapping::internal::BitPackedIntCommon< TArrayExtents, TRecordDim, typename TArrayExtents::value_type, SignBit::Keep, LinearizeArrayIndexRight, internal::StoredUnsignedFor< TRecordDim > > | |
| using | LinearizeArrayIndexFunctor = LinearizeArrayIndexRight |
| using | StoredIntegral = internal::StoredUnsignedFor< TRecordDim > |
Public Types inherited from llama::mapping::MappingBase< TArrayExtents, TRecordDim > | |
| using | ArrayExtents = TArrayExtents |
| using | RecordDim = TRecordDim |
Public Member Functions | |
| constexpr auto | blobSize (size_type) const -> size_type |
| template<std::size_t... RecordCoords, typename Blobs > | |
| constexpr auto | compute (typename Base::ArrayIndex ai, RecordCoord< RecordCoords... >, Blobs &blobs) const |
Public Member Functions inherited from llama::mapping::internal::BitPackedIntCommon< TArrayExtents, TRecordDim, typename TArrayExtents::value_type, SignBit::Keep, LinearizeArrayIndexRight, internal::StoredUnsignedFor< TRecordDim > > | |
| constexpr auto | bits () const -> size_type |
| constexpr | BitPackedIntCommon (TArrayExtents extents={}, typename TArrayExtents::value_type bits={}, TRecordDim={}) |
| constexpr | BitPackedIntCommon (TArrayExtents extents, typename TArrayExtents::value_type bits, TRecordDim={}) |
Public Member Functions inherited from llama::mapping::MappingBase< TArrayExtents, TRecordDim > | |
| constexpr | MappingBase ()=default |
| constexpr | MappingBase (ArrayExtents extents, RecordDim={}) |
| constexpr auto | extents () const -> ArrayExtents |
Static Public Attributes | |
| static constexpr std::size_t | blobCount = mp_size<FlatRecordDim<TRecordDim>>::value |
Struct of array mapping using bit packing to reduce size/precision of integral data types. If your record dimension contains non-integral types, split them off using the Split mapping first.
| Bits | If Bits is llama::Constant<N>, the compile-time N specifies the number of bits to use. If Bits is an integral type T, the number of bits is specified at runtime, passed to the constructor and stored as type T. Must not be zero and must not be bigger than the bits of TStoredIntegral. |
| SignBit | When set to SignBit::Discard, discards the sign bit when storing signed integers. All numbers will be read back positive. |
| TLinearizeArrayIndexFunctor | Defines how the array dimensions should be mapped into linear numbers and how big the linear domain gets. |
| TStoredIntegral | Integral type used as storage of reduced precision integers. Must be std::uint32_t or std::uint64_t. |
Definition at line 366 of file BitPackedInt.hpp.
| using llama::mapping::internal::BitPackedIntCommon< TArrayExtents, TRecordDim, Bits, SignBit, TLinearizeArrayIndexFunctor, TStoredIntegral >::Base = MappingBase<TArrayExtents, TRecordDim> |
Definition at line 257 of file BitPackedInt.hpp.
| using llama::mapping::internal::BitPackedIntCommon< TArrayExtents, TRecordDim, Bits, SignBit, TLinearizeArrayIndexFunctor, TStoredIntegral >::size_type = typename TArrayExtents::value_type |
Definition at line 259 of file BitPackedInt.hpp.
| using llama::mapping::BitPackedIntSoA< TArrayExtents, TRecordDim, Bits, SignBit, TLinearizeArrayIndexFunctor, TStoredIntegral >::VHBits = typename Base::VHBits |
Definition at line 382 of file BitPackedInt.hpp.
|
inlineconstexpr |
Definition at line 387 of file BitPackedInt.hpp.
|
inlineconstexpr |
Definition at line 395 of file BitPackedInt.hpp.
|
staticconstexpr |
Definition at line 384 of file BitPackedInt.hpp.