Uni20
Asynchronous tensor and runtime library.
Loading...
Searching...
No Matches
Namespaces | Concepts | Typedefs
block_tensor_concepts.hpp File Reference

Concepts and associated types for BlockTensor-level views. More...

#include <uni20/symmetry/symmetry.hpp>
#include <uni20/tensor/concepts.hpp>
#include <concepts>
#include <cstddef>
#include <span>
#include <type_traits>
#include <utility>
Include dependency graph for block_tensor_concepts.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Namespaces

namespace  uni20
 

Concepts

concept  uni20::BlockTensorView
 Tensor-level view of a symmetry-preserving collection of dense blocks.
 
concept  uni20::MutableBlockTensorView
 BlockTensorView whose stored dense blocks support eventual mutation.
 
concept  uni20::ImmediateBlockTensorView
 BlockTensorView whose read-only dense blocks are immediately accessible.
 
concept  uni20::MutableImmediateBlockTensorView
 MutableBlockTensorView whose writable dense blocks are immediately accessible.
 
concept  uni20::DiagonalBlockTensorView
 BlockTensorView whose stored numerical blocks are generalized diagonals.
 
concept  uni20::BorrowedBlockTensorView
 BlockTensorView whose destruction does not destroy its referenced numerical payload.
 
concept  uni20::AsyncBlockTensorView
 BlockTensorView exposing an independently scheduled read timeline per block.
 
concept  uni20::MutableAsyncBlockTensorView
 MutableBlockTensorView exposing an independently scheduled write timeline per block.
 

Typedefs

template<class Tensor >
using uni20::block_tensor_codomain_t = typename block_tensor_type_t< Tensor >::codomain_type
 Ordered codomain type exposed by a BlockTensor-level object.
 
template<class Tensor >
using uni20::block_tensor_const_block_t = decltype(std::declval< block_tensor_type_t< Tensor > const & >().block_by_ordinal(std::size_t{}))
 Read-only dense-block TensorView exposed by stable block ordinal.
 
template<class Tensor >
using uni20::block_tensor_domain_t = typename block_tensor_type_t< Tensor >::domain_type
 Ordered domain type exposed by a BlockTensor-level object.
 
template<class Tensor >
using uni20::block_tensor_key_t = typename block_tensor_type_t< Tensor >::key_type
 Logical block-key type exposed by a BlockTensor-level object.
 
template<class Tensor >
using uni20::block_tensor_mutable_block_t = decltype(std::declval< std::remove_reference_t< Tensor > & >().block_by_ordinal(std::size_t{}))
 Writable dense-block TensorView exposed by stable block ordinal.
 
template<class Tensor >
using uni20::block_tensor_type_t = std::remove_cvref_t< Tensor >
 Cvref-stripped BlockTensor-level object type.
 
template<class Tensor >
using uni20::block_tensor_value_t = typename block_tensor_type_t< Tensor >::value_type
 Scalar value type exposed by a BlockTensor-level object.
 

Detailed Description

Concepts and associated types for BlockTensor-level views.