|
Uni20
Asynchronous tensor and runtime library.
|
Constructs and updates symmetry-preserving MPO environments. More...
#include <uni20/async/debug_scheduler.hpp>#include <uni20/core/scalar_concepts.hpp>#include <uni20/linalg/elementwise_functions.hpp>#include <uni20/linalg/ops/contract.hpp>#include <uni20/symmetry/block_tensor_concepts.hpp>#include <uni20/symmetry/block_tensor_space_traits.hpp>#include <uni20/tensor/conjugate.hpp>#include <uni20/tensor/tensor.hpp>#include <uni20/tensor/transform.hpp>#include <uni20/tensor_network/site_types.hpp>#include <algorithm>#include <array>#include <concepts>#include <cstddef>#include <numeric>#include <ranges>#include <stdexcept>#include <type_traits>#include <utility>#include <vector>Go to the source code of this file.
Namespaces | |
| namespace | uni20 |
| namespace | uni20::tensor_network |
Functions | |
| template<SparseBlockStorage OutputStorage = SeparateSparseBlockStorage<>, detail::EnvironmentMatrixView Environment, detail::EnvironmentMatrixView BraSite, detail::EnvironmentMpoView Mpo, detail::EnvironmentMatrixView KetSite> requires detail::CompatibleEnvironmentUpdateScalars<Environment, BraSite, Mpo, KetSite> && detail::CompatibleLeftEnvironmentUpdateSpaces<Environment, BraSite, Mpo, KetSite> && detail::EnvironmentStorageFor<OutputStorage, block_tensor_value_t<Environment>> | |
| auto | uni20::tensor_network::extend_left_environment (Environment const &environment, BraSite const &bra_site, Mpo const &mpo, KetSite const &ket_site) |
| Extend a left MPO environment across distinct bra and ket MPS sites. | |
| template<SparseBlockStorage OutputStorage = SeparateSparseBlockStorage<>, detail::EnvironmentMatrixView Environment, detail::EnvironmentMatrixView Site, detail::EnvironmentMpoView Mpo> | |
| auto | uni20::tensor_network::extend_left_environment (Environment const &environment, Site const &site, Mpo const &mpo) |
| Extend a left MPO environment using one site as both bra and ket. | |
| template<SparseBlockStorage OutputStorage = SeparateSparseBlockStorage<>, detail::EnvironmentMatrixView Environment, detail::EnvironmentMatrixView BraSite, detail::EnvironmentMpoView Mpo, detail::EnvironmentMatrixView KetSite> requires detail::CompatibleEnvironmentUpdateScalars<Environment, BraSite, Mpo, KetSite> && detail::CompatibleRightEnvironmentUpdateSpaces<Environment, BraSite, Mpo, KetSite> && detail::EnvironmentStorageFor<OutputStorage, block_tensor_value_t<Environment>> | |
| auto | uni20::tensor_network::extend_right_environment (Environment const &environment, BraSite const &bra_site, Mpo const &mpo, KetSite const &ket_site) |
| Extend a right MPO environment across distinct bra and ket MPS sites. | |
| template<SparseBlockStorage OutputStorage = SeparateSparseBlockStorage<>, detail::EnvironmentMatrixView Environment, detail::EnvironmentMatrixView Site, detail::EnvironmentMpoView Mpo> | |
| auto | uni20::tensor_network::extend_right_environment (Environment const &environment, Site const &site, Mpo const &mpo) |
| Extend a right MPO environment using one site as both bra and ket. | |
| template<typename Value , SparseBlockStorage Storage = SeparateSparseBlockStorage<>> requires Scalar<Value> && detail::EnvironmentStorageFor<Storage, Value> | |
| auto | uni20::tensor_network::make_identity_mpo_environment (BlockSpace const &bond, LocalSpace const &auxiliary, std::size_t auxiliary_index) -> MpoEnvironment< Value, BlockSpace, LocalSpace, BlockSpace, Storage > |
| Construct an identity MPO environment at one scalar auxiliary state. | |
| template<typename Value , SparseBlockStorage Storage = SeparateSparseBlockStorage<>, class Context > requires Scalar<Value> && detail::EnvironmentStorageFor<Storage, Value> && requires( BlockSpace const& bond, LocalSpace const& auxiliary, std::vector<typename MpoEnvironment<Value, BlockSpace, LocalSpace, BlockSpace, Storage>::key_type> keys, Context& context) { MpoEnvironment<Value, BlockSpace, LocalSpace, BlockSpace, Storage>( uninitialized, bond.symmetry(), Domain{bond, auxiliary}, Codomain{bond}, std::move(keys), context); } | |
| auto | uni20::tensor_network::make_identity_mpo_environment (BlockSpace const &bond, LocalSpace const &auxiliary, std::size_t auxiliary_index, Context &context) -> MpoEnvironment< Value, BlockSpace, LocalSpace, BlockSpace, Storage > |
| Construct an identity MPO environment in an explicit leaf allocation context. | |
Constructs and updates symmetry-preserving MPO environments.