|
Uni20
Asynchronous tensor and runtime library.
|
Sparse storage packing every stored dense 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::PackedBlockStorageData< T, KeyCoordinateCount, DenseBlockOrder, leaf_storage_policy, BlockAlignment > |
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 |
Sparse storage packing every stored dense block into one leaf buffer.
A BlockAlignment greater than one pads block starts to that byte alignment while preserving a single allocation.
| LeafStorage | Tensor storage policy used by the packed buffer. |
| BlockAlignment | Required byte alignment of every block start. |
| using uni20::PackedSparseBlockStorage< LeafStorage, BlockAlignment >::backend_selector_type = typename leaf_storage_policy::backend_selector_type |
| using uni20::PackedSparseBlockStorage< LeafStorage, BlockAlignment >::block_execution_policy = SerialBlockExecution |
| using uni20::PackedSparseBlockStorage< LeafStorage, BlockAlignment >::leaf_storage_policy = LeafStorage |
| using uni20::PackedSparseBlockStorage< LeafStorage, BlockAlignment >::storage_t = detail::PackedBlockStorageData<T, KeyCoordinateCount, DenseBlockOrder, leaf_storage_policy, BlockAlignment> |
|
inlinestaticconstexprnoexcept |
|
staticconstexpr |
|
staticconstexpr |