Low-Level Abstraction of Memory Access
BitPackedFloat.hpp File Reference
#include "../ProxyRefOpMixin.hpp"
#include "BitPackedInt.hpp"
#include "Common.hpp"
#include <algorithm>
#include <climits>
#include <cstdint>
#include <cstring>
#include <limits>
#include <type_traits>
+ Include dependency graph for BitPackedFloat.hpp:

Go to the source code of this file.

Classes

struct  llama::mapping::internal::FloatBitTraits< float >
 
struct  llama::mapping::internal::FloatBitTraits< double >
 
struct  llama::mapping::internal::BitPackedFloatRef< Float, StoredIntegralCV, VHExp, VHMan, SizeType >
 
struct  llama::mapping::BitPackedFloatSoA< TArrayExtents, TRecordDim, ExponentBits, MantissaBits, TLinearizeArrayIndexFunctor, TStoredIntegral >
 
struct  llama::mapping::BindBitPackedFloatSoA< ExponentBits, MantissaBits, LinearizeArrayIndexFunctor, StoredIntegral >
 
struct  llama::mapping::BitPackedFloatAoS< TArrayExtents, TRecordDim, ExponentBits, MantissaBits, TLinearizeArrayIndexFunctor, PermuteFields, TStoredIntegral >
 
struct  llama::mapping::BindBitPackedFloatAoS< ExponentBits, MantissaBits, LinearizeArrayIndexFunctor, PermuteFields, StoredIntegral >
 

Namespaces

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

Typedefs

template<typename RecordDim >
using llama::mapping::internal::StoredIntegralFor = std::conditional_t< mp_contains< FlatRecordDim< RecordDim >, double >::value, std::uint64_t, std::uint32_t >
 

Functions

template<typename Integral >
auto llama::mapping::internal::repackFloat (Integral inFloat, unsigned inMantissaBits, unsigned inExponentBits, unsigned outMantissaBits, unsigned outExponentBits) -> Integral
 
template<typename E , typename M >
auto llama::mapping::internal::integBits (E e, M m)
 
template<auto E, auto M>
auto llama::mapping::internal::integBits (llama::internal::BoxedValue< Constant< E >>, llama::internal::BoxedValue< Constant< M >>)
 

Variables

template<typename Mapping >
constexpr bool llama::mapping::isBitPackedFloatSoA = false
 
template<typename... Ts>
constexpr bool llama::mapping::isBitPackedFloatSoA< BitPackedFloatSoA< Ts... > > = true
 
template<typename Mapping >
constexpr bool llama::mapping::isBitPackedFloatAoS = false
 
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