|
Uni20
Asynchronous tensor and runtime library.
|
Defines zero-copy bosonic edge repartition views. More...
#include <uni20/symmetry/block_tensor_concepts.hpp>#include <uni20/symmetry/block_tensor_mapped_view.hpp>#include <array>#include <concepts>#include <cstddef>#include <tuple>#include <type_traits>#include <utility>Go to the source code of this file.
Namespaces | |
| namespace | uni20 |
Typedefs | |
| template<class SourceTensor , MorphismSide Side, BoundaryEnd End> | |
| using | uni20::BlockTensorRepartitionView = typename detail::RepartitionViewTraits< SourceTensor, Side, End >::type |
| Zero-copy view of one bosonic edge leg bent across a morphism boundary. | |
Enumerations | |
| enum class | uni20::BoundaryEnd { uni20::Left , uni20::Right } |
Planar boundary end at which repartition bends one leg. More... | |
| enum class | uni20::MorphismSide { uni20::Domain , uni20::Codomain } |
Morphism side from which repartition bends one edge leg. More... | |
Functions | |
| template<MorphismSide Side, BoundaryEnd End, class Tensor > requires (!std::is_lvalue_reference_v<Tensor &&> && detail::RepartitionSourceHasLeg<Tensor, Side> && !BorrowedBlockTensorView<Tensor>) | |
| auto | uni20::repartition (Tensor &&)=delete |
| Repartition a temporary borrowed BlockTensor view without retaining the intermediate view. | |
| template<MorphismSide Side, BoundaryEnd End, BorrowedBlockTensorView Tensor> requires (!std::is_lvalue_reference_v<Tensor &&> && detail::RepartitionSourceHasLeg<Tensor, Side>) | |
| auto | uni20::repartition (Tensor &&tensor) |
| Repartition a temporary borrowed BlockTensor view without retaining the intermediate view. | |
| template<MorphismSide Side, BoundaryEnd End, class Tensor > requires detail::RepartitionSourceHasLeg<Tensor, Side> | |
| auto | uni20::repartition (Tensor &tensor) -> BlockTensorRepartitionView< Tensor, Side, End > |
| Bend one planar edge leg across a BlockTensor morphism boundary. | |
Defines zero-copy bosonic edge repartition views.