|
Uni20
Asynchronous tensor and runtime library.
|
Defines zero-copy bosonic BlockTensor factor permutations. More...
#include <uni20/symmetry/block_tensor_concepts.hpp>#include <uni20/symmetry/block_tensor_mapped_view.hpp>#include <array>#include <cstddef>#include <tuple>#include <type_traits>#include <utility>Go to the source code of this file.
Namespaces | |
| namespace | uni20 |
Typedefs | |
| template<class SourceTensor , std::size_t... Axis> | |
| using | uni20::BlockTensorPermutationView = typename detail::PermutationViewTraits< SourceTensor, Axis... >::type |
| Zero-copy bosonic permutation of factors within each morphism side. | |
Functions | |
| template<class Tensor > requires BlockTensorView<Tensor> && requires(Tensor& tensor) { detail::as_block_tensor_view_impl(tensor, std::make_index_sequence<block_tensor_type_t<Tensor>::order()>{}); } | |
| auto | uni20::as_block_tensor_view (Tensor &tensor) |
| Materialize a borrowed identity view over an existing BlockTensor view. | |
| template<std::size_t... Axis, class Tensor > requires (!std::is_lvalue_reference_v<Tensor &&> && detail::SidePreservingPermutation<Tensor, Axis...> && !BorrowedBlockTensorView<Tensor>) | |
| auto | uni20::permute (Tensor &&)=delete |
| Permute a temporary borrowed BlockTensor view without retaining the intermediate view. | |
| template<std::size_t... Axis, BorrowedBlockTensorView Tensor> requires (!std::is_lvalue_reference_v<Tensor &&> && detail::SidePreservingPermutation<Tensor, Axis...>) | |
| auto | uni20::permute (Tensor &&tensor) |
| Permute a temporary borrowed BlockTensor view without retaining the intermediate view. | |
| template<std::size_t... Axis, class Tensor > requires detail::SidePreservingPermutation<Tensor, Axis...> | |
| auto | uni20::permute (Tensor &tensor) -> BlockTensorPermutationView< Tensor, Axis... > |
| Permute bosonic BlockTensor factors without moving numerical payload. | |
Defines zero-copy bosonic BlockTensor factor permutations.