template<typename TArrayExtents, typename TRecordDim, typename ExponentBits = typename TArrayExtents::value_type, typename MantissaBits = ExponentBits, typename TLinearizeArrayIndexFunctor = LinearizeArrayIndexRight, typename TStoredIntegral = internal::StoredIntegralFor<TRecordDim>>
struct llama::mapping::BitPackedFloatSoA< TArrayExtents, TRecordDim, ExponentBits, MantissaBits, TLinearizeArrayIndexFunctor, TStoredIntegral >
Struct of array mapping using bit packing to reduce size/precision of floating-point data types. The bit layout is [1 sign bit, exponentBits bits from the exponent, mantissaBits bits from the mantissa]+ and tries to follow IEEE 754. Infinity and NAN are supported. If the packed exponent bits are not big enough to hold a number, it will be set to infinity (preserving the sign). If your record dimension contains non-floating-point types, split them off using the Split mapping first. 
- Template Parameters
 - 
  
    | ExponentBits | If ExponentBits is llama::Constant<N>, the compile-time N specifies the number of bits to use to store the exponent. If ExponentBits is llama::Value<T>, the number of bits is specified at runtime, passed to the constructor and stored as type T. Must not be zero.  | 
    | MantissaBits | Like ExponentBits but for the mantissa bits. Must not be zero (otherwise values turn INF).  | 
    | 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 floating-point values.  | 
  
   
Definition at line 207 of file BitPackedFloat.hpp.
 
template<typename TArrayExtents , typename TRecordDim , typename ExponentBits  = typename TArrayExtents::value_type, typename MantissaBits  = ExponentBits, typename TLinearizeArrayIndexFunctor  = LinearizeArrayIndexRight, typename TStoredIntegral  = internal::StoredIntegralFor<TRecordDim>> 
  
  
      
        
          | constexpr auto llama::mapping::BitPackedFloatSoA< TArrayExtents, TRecordDim, ExponentBits, MantissaBits, TLinearizeArrayIndexFunctor, TStoredIntegral >::blobSize  | 
          ( | 
          size_type  | 
           | ) | 
           const -> size_type
         | 
         
       
   | 
  
inlineconstexpr   | 
  
 
 
template<typename TArrayExtents , typename TRecordDim , typename ExponentBits  = typename TArrayExtents::value_type, typename MantissaBits  = ExponentBits, typename TLinearizeArrayIndexFunctor  = LinearizeArrayIndexRight, typename TStoredIntegral  = internal::StoredIntegralFor<TRecordDim>> 
template<std::size_t... RecordCoords, typename Blobs > 
 
 
template<typename TArrayExtents , typename TRecordDim , typename ExponentBits  = typename TArrayExtents::value_type, typename MantissaBits  = ExponentBits, typename TLinearizeArrayIndexFunctor  = LinearizeArrayIndexRight, typename TStoredIntegral  = internal::StoredIntegralFor<TRecordDim>> 
  
  
      
        
          | constexpr auto llama::mapping::BitPackedFloatSoA< TArrayExtents, TRecordDim, ExponentBits, MantissaBits, TLinearizeArrayIndexFunctor, TStoredIntegral >::exponentBits  | 
          ( | 
           | ) | 
           const -> size_type
         | 
         
       
   | 
  
inlineconstexpr   | 
  
 
 
template<typename TArrayExtents , typename TRecordDim , typename ExponentBits  = typename TArrayExtents::value_type, typename MantissaBits  = ExponentBits, typename TLinearizeArrayIndexFunctor  = LinearizeArrayIndexRight, typename TStoredIntegral  = internal::StoredIntegralFor<TRecordDim>> 
template<std::size_t... RecordCoords> 
 
 
template<typename TArrayExtents , typename TRecordDim , typename ExponentBits  = typename TArrayExtents::value_type, typename MantissaBits  = ExponentBits, typename TLinearizeArrayIndexFunctor  = LinearizeArrayIndexRight, typename TStoredIntegral  = internal::StoredIntegralFor<TRecordDim>> 
  
  
      
        
          | constexpr auto llama::mapping::BitPackedFloatSoA< TArrayExtents, TRecordDim, ExponentBits, MantissaBits, TLinearizeArrayIndexFunctor, TStoredIntegral >::mantissaBits  | 
          ( | 
           | ) | 
           const -> size_type
         | 
         
       
   | 
  
inlineconstexpr   |