Uni20
Asynchronous tensor and runtime library.
Loading...
Searching...
No Matches
block_tensor_space_traits.hpp
Go to the documentation of this file.
1
7#pragma once
8
15
16#include <concepts>
17#include <type_traits>
18
19namespace uni20
20{
21
27template <class SpaceType> struct BlockTensorSpaceTraits;
28
31{
32 static constexpr bool has_block_coordinate = true;
33 static constexpr bool has_dense_axis = false;
34};
35
38{
39 static constexpr bool has_block_coordinate = false;
40 static constexpr bool has_dense_axis = false;
41};
42
45{
46 static constexpr bool has_block_coordinate = true;
47 static constexpr bool has_dense_axis = true;
48};
49
52{
53 static constexpr bool has_block_coordinate = true;
54 static constexpr bool has_dense_axis = true;
55};
56
59{
60 static constexpr bool has_block_coordinate = false;
61 static constexpr bool has_dense_axis = true;
62};
63
65template <Space SpaceType> struct BlockTensorSpaceTraits<Dual<SpaceType>> : BlockTensorSpaceTraits<SpaceType>
66{};
67
70template <class SpaceType>
72 { BlockTensorSpaceTraits<std::remove_cvref_t<SpaceType>>::has_block_coordinate } -> std::convertible_to<bool>;
73 { BlockTensorSpaceTraits<std::remove_cvref_t<SpaceType>>::has_dense_axis } -> std::convertible_to<bool>;
74};
75
76static_assert(BlockTensorSpace<LocalSpace>);
77static_assert(BlockTensorSpace<QNumSpace>);
78static_assert(BlockTensorSpace<BlockSpace>);
80static_assert(BlockTensorSpace<DenseSpace>);
81
82} // namespace uni20
Defines immutable block-structured tensor spaces and regularization helpers.
Immutable coalesced tensor space represented as unique symmetry blocks.
Definition block_space.hpp:38
Symmetry-neutral dense tensor space with one fixed extent.
Definition dense_space.hpp:21
Tensor space represented in an explicitly dual basis.
Definition dual_space.hpp:89
Ordered block space whose quantum-number sectors may repeat.
Definition irregular_space.hpp:30
Ordered local-state space whose quantum numbers may repeat.
Definition local_space.hpp:28
Tensor space carrying one irreducible-representation label.
Definition qnum_space.hpp:20
Tensor space with an explicit block-coordinate/dense-axis classification.
Definition block_tensor_space_traits.hpp:71
Tensor-space value with a mutable semantic leg label.
Definition space.hpp:22
Defines symmetry-neutral dense tensor spaces.
Defines the generic categorical dual-space adaptor.
Defines immutable ordered block spaces with repeated sectors.
Defines immutable ordered local-state spaces.
Definition async/async.hpp:26
Defines single-irrep tensor spaces.
Compile-time storage properties of one BlockTensor boundary space.
Definition block_tensor_space_traits.hpp:27