Low-Level Abstraction of Memory Access
llama::mapping::BitPackedFloatAoS< TArrayExtents, TRecordDim, ExponentBits, MantissaBits, TLinearizeArrayIndexFunctor, PermuteFields, TStoredIntegral > Struct Template Reference

#include <BitPackedFloat.hpp>

+ Inheritance diagram for llama::mapping::BitPackedFloatAoS< TArrayExtents, TRecordDim, ExponentBits, MantissaBits, TLinearizeArrayIndexFunctor, PermuteFields, TStoredIntegral >:
+ Collaboration diagram for llama::mapping::BitPackedFloatAoS< TArrayExtents, TRecordDim, ExponentBits, MantissaBits, TLinearizeArrayIndexFunctor, PermuteFields, TStoredIntegral >:

Public Types

using LinearizeArrayIndexFunctor = TLinearizeArrayIndexFunctor
 
using StoredIntegral = TStoredIntegral
 
using Permuter = PermuteFields< FlatRecordDim< TRecordDim > >
 
- Public Types inherited from llama::mapping::MappingBase< TArrayExtents, TRecordDim >
using ArrayExtents = TArrayExtents
 
using RecordDim = TRecordDim
 

Public Member Functions

constexpr auto exponentBits () const -> size_type
 
constexpr auto mantissaBits () const -> size_type
 
constexpr BitPackedFloatAoS (TArrayExtents extents={}, ExponentBits exponentBits={}, MantissaBits mantissaBits={}, TRecordDim={})
 
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::MappingBase< TArrayExtents, TRecordDim >
constexpr MappingBase ()=default
 
constexpr MappingBase (ArrayExtents extents, RecordDim={})
 
constexpr auto extents () const -> ArrayExtents
 
- Public Member Functions inherited from llama::internal::BoxedValue< typename TArrayExtents::value_type, 0 >
 BoxedValue ()=default
 
 BoxedValue (typename TArrayExtents::value_type value)
 
constexpr auto value () const
 
- Public Member Functions inherited from llama::internal::BoxedValue< typename TArrayExtents::value_type, 1 >
 BoxedValue ()=default
 
 BoxedValue (typename TArrayExtents::value_type value)
 
constexpr auto value () const
 

Static Public Member Functions

template<std::size_t... RecordCoords>
static constexpr auto isComputed (RecordCoord< RecordCoords... >)
 

Static Public Attributes

static constexpr std::size_t blobCount = 1
 

Additional Inherited Members

- Protected Types inherited from llama::mapping::MappingBase< TArrayExtents, TRecordDim >
using ArrayIndex = typename ArrayExtents::Index
 
using size_type = typename ArrayExtents::value_type
 

Detailed Description

template<typename TArrayExtents, typename TRecordDim, typename ExponentBits = typename TArrayExtents::value_type, typename MantissaBits = ExponentBits, typename TLinearizeArrayIndexFunctor = LinearizeArrayIndexRight, template< typename > typename PermuteFields = PermuteFieldsInOrder, typename TStoredIntegral = internal::StoredIntegralFor<TRecordDim>>
struct llama::mapping::BitPackedFloatAoS< TArrayExtents, TRecordDim, ExponentBits, MantissaBits, TLinearizeArrayIndexFunctor, PermuteFields, TStoredIntegral >

Definition at line 325 of file BitPackedFloat.hpp.

Member Typedef Documentation

◆ LinearizeArrayIndexFunctor

template<typename TArrayExtents , typename TRecordDim , typename ExponentBits = typename TArrayExtents::value_type, typename MantissaBits = ExponentBits, typename TLinearizeArrayIndexFunctor = LinearizeArrayIndexRight, template< typename > typename PermuteFields = PermuteFieldsInOrder, typename TStoredIntegral = internal::StoredIntegralFor<TRecordDim>>
using llama::mapping::BitPackedFloatAoS< TArrayExtents, TRecordDim, ExponentBits, MantissaBits, TLinearizeArrayIndexFunctor, PermuteFields, TStoredIntegral >::LinearizeArrayIndexFunctor = TLinearizeArrayIndexFunctor

Definition at line 337 of file BitPackedFloat.hpp.

◆ Permuter

template<typename TArrayExtents , typename TRecordDim , typename ExponentBits = typename TArrayExtents::value_type, typename MantissaBits = ExponentBits, typename TLinearizeArrayIndexFunctor = LinearizeArrayIndexRight, template< typename > typename PermuteFields = PermuteFieldsInOrder, typename TStoredIntegral = internal::StoredIntegralFor<TRecordDim>>
using llama::mapping::BitPackedFloatAoS< TArrayExtents, TRecordDim, ExponentBits, MantissaBits, TLinearizeArrayIndexFunctor, PermuteFields, TStoredIntegral >::Permuter = PermuteFields<FlatRecordDim<TRecordDim> >

Definition at line 340 of file BitPackedFloat.hpp.

◆ StoredIntegral

template<typename TArrayExtents , typename TRecordDim , typename ExponentBits = typename TArrayExtents::value_type, typename MantissaBits = ExponentBits, typename TLinearizeArrayIndexFunctor = LinearizeArrayIndexRight, template< typename > typename PermuteFields = PermuteFieldsInOrder, typename TStoredIntegral = internal::StoredIntegralFor<TRecordDim>>
using llama::mapping::BitPackedFloatAoS< TArrayExtents, TRecordDim, ExponentBits, MantissaBits, TLinearizeArrayIndexFunctor, PermuteFields, TStoredIntegral >::StoredIntegral = TStoredIntegral

Definition at line 338 of file BitPackedFloat.hpp.

Constructor & Destructor Documentation

◆ BitPackedFloatAoS()

template<typename TArrayExtents , typename TRecordDim , typename ExponentBits = typename TArrayExtents::value_type, typename MantissaBits = ExponentBits, typename TLinearizeArrayIndexFunctor = LinearizeArrayIndexRight, template< typename > typename PermuteFields = PermuteFieldsInOrder, typename TStoredIntegral = internal::StoredIntegralFor<TRecordDim>>
constexpr llama::mapping::BitPackedFloatAoS< TArrayExtents, TRecordDim, ExponentBits, MantissaBits, TLinearizeArrayIndexFunctor, PermuteFields, TStoredIntegral >::BitPackedFloatAoS ( TArrayExtents  extents = {},
ExponentBits  exponentBits = {},
MantissaBits  mantissaBits = {},
TRecordDim  = {} 
)
inlineexplicitconstexpr

Definition at line 356 of file BitPackedFloat.hpp.

Member Function Documentation

◆ blobSize()

template<typename TArrayExtents , typename TRecordDim , typename ExponentBits = typename TArrayExtents::value_type, typename MantissaBits = ExponentBits, typename TLinearizeArrayIndexFunctor = LinearizeArrayIndexRight, template< typename > typename PermuteFields = PermuteFieldsInOrder, typename TStoredIntegral = internal::StoredIntegralFor<TRecordDim>>
constexpr auto llama::mapping::BitPackedFloatAoS< TArrayExtents, TRecordDim, ExponentBits, MantissaBits, TLinearizeArrayIndexFunctor, PermuteFields, TStoredIntegral >::blobSize ( size_type  ) const -> size_type
inlineconstexpr

Definition at line 369 of file BitPackedFloat.hpp.

◆ compute()

template<typename TArrayExtents , typename TRecordDim , typename ExponentBits = typename TArrayExtents::value_type, typename MantissaBits = ExponentBits, typename TLinearizeArrayIndexFunctor = LinearizeArrayIndexRight, template< typename > typename PermuteFields = PermuteFieldsInOrder, typename TStoredIntegral = internal::StoredIntegralFor<TRecordDim>>
template<std::size_t... RecordCoords, typename Blobs >
constexpr auto llama::mapping::BitPackedFloatAoS< TArrayExtents, TRecordDim, ExponentBits, MantissaBits, TLinearizeArrayIndexFunctor, PermuteFields, TStoredIntegral >::compute ( typename Base::ArrayIndex  ai,
RecordCoord< RecordCoords... >  ,
Blobs blobs 
) const
inlineconstexpr

Definition at line 385 of file BitPackedFloat.hpp.

◆ exponentBits()

template<typename TArrayExtents , typename TRecordDim , typename ExponentBits = typename TArrayExtents::value_type, typename MantissaBits = ExponentBits, typename TLinearizeArrayIndexFunctor = LinearizeArrayIndexRight, template< typename > typename PermuteFields = PermuteFieldsInOrder, typename TStoredIntegral = internal::StoredIntegralFor<TRecordDim>>
constexpr auto llama::mapping::BitPackedFloatAoS< TArrayExtents, TRecordDim, ExponentBits, MantissaBits, TLinearizeArrayIndexFunctor, PermuteFields, TStoredIntegral >::exponentBits ( ) const -> size_type
inlineconstexpr

Definition at line 344 of file BitPackedFloat.hpp.

◆ isComputed()

template<typename TArrayExtents , typename TRecordDim , typename ExponentBits = typename TArrayExtents::value_type, typename MantissaBits = ExponentBits, typename TLinearizeArrayIndexFunctor = LinearizeArrayIndexRight, template< typename > typename PermuteFields = PermuteFieldsInOrder, typename TStoredIntegral = internal::StoredIntegralFor<TRecordDim>>
template<std::size_t... RecordCoords>
static constexpr auto llama::mapping::BitPackedFloatAoS< TArrayExtents, TRecordDim, ExponentBits, MantissaBits, TLinearizeArrayIndexFunctor, PermuteFields, TStoredIntegral >::isComputed ( RecordCoord< RecordCoords... >  )
inlinestaticconstexpr

Definition at line 379 of file BitPackedFloat.hpp.

◆ mantissaBits()

template<typename TArrayExtents , typename TRecordDim , typename ExponentBits = typename TArrayExtents::value_type, typename MantissaBits = ExponentBits, typename TLinearizeArrayIndexFunctor = LinearizeArrayIndexRight, template< typename > typename PermuteFields = PermuteFieldsInOrder, typename TStoredIntegral = internal::StoredIntegralFor<TRecordDim>>
constexpr auto llama::mapping::BitPackedFloatAoS< TArrayExtents, TRecordDim, ExponentBits, MantissaBits, TLinearizeArrayIndexFunctor, PermuteFields, TStoredIntegral >::mantissaBits ( ) const -> size_type
inlineconstexpr

Definition at line 350 of file BitPackedFloat.hpp.

Member Data Documentation

◆ blobCount

template<typename TArrayExtents , typename TRecordDim , typename ExponentBits = typename TArrayExtents::value_type, typename MantissaBits = ExponentBits, typename TLinearizeArrayIndexFunctor = LinearizeArrayIndexRight, template< typename > typename PermuteFields = PermuteFieldsInOrder, typename TStoredIntegral = internal::StoredIntegralFor<TRecordDim>>
constexpr std::size_t llama::mapping::BitPackedFloatAoS< TArrayExtents, TRecordDim, ExponentBits, MantissaBits, TLinearizeArrayIndexFunctor, PermuteFields, TStoredIntegral >::blobCount = 1
staticconstexpr

Definition at line 341 of file BitPackedFloat.hpp.


The documentation for this struct was generated from the following file: