Uni20
Asynchronous tensor and runtime library.
Loading...
Searching...
No Matches
Public Types | Static Public Member Functions | Static Public Attributes | List of all members
uni20::PackedDiagonalBlockStorage< LeafStorage > Struct Template Reference

Sparse BlockTensor storage packing each generalized diagonal block into one leaf buffer. More...

#include <block_tensor_storage.hpp>

Public Types

using backend_selector_type = typename leaf_storage_policy::backend_selector_type
 
using block_execution_policy = SerialBlockExecution
 
using leaf_storage_policy = LeafStorage
 
template<typename T , std::size_t KeyCoordinateCount, std::size_t DenseBlockOrder>
using storage_t = detail::PackedDiagonalBlockStorageData< T, KeyCoordinateCount, DenseBlockOrder, leaf_storage_policy >
 

Static Public Member Functions

static constexpr auto backend_selector () noexcept -> backend_selector_type
 

Static Public Attributes

static constexpr bool is_distributed = false
 
static constexpr bool stores_all_legal_blocks = false
 
static constexpr bool stores_diagonal_blocks = true
 

Detailed Description

template<class LeafStorage = HostStorage>
struct uni20::PackedDiagonalBlockStorage< LeafStorage >

Sparse BlockTensor storage packing each generalized diagonal block into one leaf buffer.

Every explicitly stored logical block contains only the entries whose dense indices are all equal. Logical block presence remains controlled by the owning BlockTensor's stored-key set.

Template Parameters
LeafStorageImmediate contiguous host storage for compressed values.

Member Typedef Documentation

◆ backend_selector_type

template<class LeafStorage = HostStorage>
using uni20::PackedDiagonalBlockStorage< LeafStorage >::backend_selector_type = typename leaf_storage_policy::backend_selector_type

◆ block_execution_policy

template<class LeafStorage = HostStorage>
using uni20::PackedDiagonalBlockStorage< LeafStorage >::block_execution_policy = SerialBlockExecution

◆ leaf_storage_policy

template<class LeafStorage = HostStorage>
using uni20::PackedDiagonalBlockStorage< LeafStorage >::leaf_storage_policy = LeafStorage

◆ storage_t

template<class LeafStorage = HostStorage>
template<typename T , std::size_t KeyCoordinateCount, std::size_t DenseBlockOrder>
using uni20::PackedDiagonalBlockStorage< LeafStorage >::storage_t = detail::PackedDiagonalBlockStorageData<T, KeyCoordinateCount, DenseBlockOrder, leaf_storage_policy>

Member Function Documentation

◆ backend_selector()

template<class LeafStorage = HostStorage>
static constexpr auto uni20::PackedDiagonalBlockStorage< LeafStorage >::backend_selector ( ) -> backend_selector_type
inlinestaticconstexprnoexcept

Member Data Documentation

◆ is_distributed

template<class LeafStorage = HostStorage>
constexpr bool uni20::PackedDiagonalBlockStorage< LeafStorage >::is_distributed = false
staticconstexpr

◆ stores_all_legal_blocks

template<class LeafStorage = HostStorage>
constexpr bool uni20::PackedDiagonalBlockStorage< LeafStorage >::stores_all_legal_blocks = false
staticconstexpr

◆ stores_diagonal_blocks

template<class LeafStorage = HostStorage>
constexpr bool uni20::PackedDiagonalBlockStorage< LeafStorage >::stores_diagonal_blocks = true
staticconstexpr

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