Uni20
Asynchronous tensor and runtime library.
Loading...
Searching...
No Matches
uni20::BlockTensorStorageFor Concept Reference

Storage policy instantiated for one block scalar and tensor order. More...

#include <block_tensor_storage.hpp>

Concept definition

template<class Storage, typename T, std::size_t KeyCoordinateCount, std::size_t DenseBlockOrder>
requires(typename Storage::template storage_t<T, KeyCoordinateCount, DenseBlockOrder>& storage,
typename Storage::template storage_t<T, KeyCoordinateCount, DenseBlockOrder> const& const_storage,
std::array<std::size_t, DenseBlockOrder> const& extents) {
typename Storage::template storage_t<T, KeyCoordinateCount, DenseBlockOrder>::mutable_block_type;
typename Storage::template storage_t<T, KeyCoordinateCount, DenseBlockOrder>::const_block_type;
{ const_storage.size() } -> std::same_as<std::size_t>;
{ const_storage.keys() } -> std::same_as<std::span<BlockKey<KeyCoordinateCount> const>>;
{
storage.block(std::size_t{}, extents)
}
-> std::same_as<typename Storage::template storage_t<T, KeyCoordinateCount, DenseBlockOrder>::mutable_block_type>;
{
const_storage.block(std::size_t{}, extents)
} -> std::same_as<typename Storage::template storage_t<T, KeyCoordinateCount, DenseBlockOrder>::const_block_type>;
} &&
MutableRankedTensorView<
typename Storage::template storage_t<T, KeyCoordinateCount, DenseBlockOrder>::mutable_block_type,
DenseBlockOrder> &&
RankedTensorView<typename Storage::template storage_t<T, KeyCoordinateCount, DenseBlockOrder>::const_block_type,
DenseBlockOrder> &&
std::same_as<tensor_element_t<
typename Storage::template storage_t<T, KeyCoordinateCount, DenseBlockOrder>::mutable_block_type>,
T> &&
std::same_as<typename tensor_mdspec_t<typename Storage::template storage_t<
T, KeyCoordinateCount, DenseBlockOrder>::const_block_type>::element_type,
T const>
Storage policy instantiated for one block scalar and tensor order.
Definition block_tensor_storage.hpp:81
Storage policy for a BlockTensor container.
Definition block_tensor_storage.hpp:46
std::remove_cv_t< typename tensor_mdspec_t< T >::element_type > tensor_element_t
Scalar value type exposed by a tensor-level object.
Definition tensor/concepts.hpp:126
std::remove_cvref_t< detail::normalized_const_mdspec_t< T > > tensor_mdspec_t
Normalized readable MdspecLike type exposed by a tensor-level object.
Definition tensor/concepts.hpp:123

Detailed Description

Storage policy instantiated for one block scalar and tensor order.

Template Parameters
StorageCandidate block storage policy.
TNumerical block element type.
KeyCoordinateCountNumber of stored block-selection coordinates.
DenseBlockOrderNumber of numerical axes in each dense block.