|
Uni20
Asynchronous tensor and runtime library.
|
Homogeneous finite MPO owner with exact auxiliary connectivity. More...
#include <finite_chain.hpp>
Public Types | |
| using | auxiliary_space_type = Auxiliary |
| using | physical_space_type = Physical |
| using | site_type = MpoSite< Scalar, Auxiliary, Physical, Auxiliary, Physical, Storage > |
| using | storage_policy = Storage |
| using | value_type = std::remove_cv_t< Scalar > |
Public Member Functions | |
| FiniteMpo (std::vector< site_type > sites) | |
| Construct a nonempty chain and validate every shared auxiliary. | |
| void | replace_site (std::size_t index, site_type replacement) |
| Replace one MPO site without changing any of its spaces. | |
| auto | revision (std::size_t index) const -> std::size_t |
| Return the revision of one site. | |
| auto | site (std::size_t index) const -> site_type const & |
| Return one read-only site. | |
| auto | sites () const noexcept -> std::span< site_type const > |
| Return all sites in left-to-right order. | |
| auto | size () const noexcept -> std::size_t |
| Return the number of sites. | |
| auto | symmetry () const -> Symmetry |
| Return the common symmetry context. | |
Homogeneous finite MPO owner with exact auxiliary connectivity.
MPO sites are exposed read-only and may be replaced only without changing their spaces.
| Scalar | Numerical MPO element type. |
| Auxiliary | Concrete left and right auxiliary-space type. |
| Physical | Concrete input and output physical-space type. |
| Storage | Block storage policy used by every site. |
| using uni20::tensor_network::FiniteMpo< Scalar, Auxiliary, Physical, Storage >::auxiliary_space_type = Auxiliary |
| using uni20::tensor_network::FiniteMpo< Scalar, Auxiliary, Physical, Storage >::physical_space_type = Physical |
| using uni20::tensor_network::FiniteMpo< Scalar, Auxiliary, Physical, Storage >::site_type = MpoSite<Scalar, Auxiliary, Physical, Auxiliary, Physical, Storage> |
| using uni20::tensor_network::FiniteMpo< Scalar, Auxiliary, Physical, Storage >::storage_policy = Storage |
| using uni20::tensor_network::FiniteMpo< Scalar, Auxiliary, Physical, Storage >::value_type = std::remove_cv_t<Scalar> |
|
inlineexplicit |
Construct a nonempty chain and validate every shared auxiliary.
| sites | Ordered MPO sites from left to right. |
| std::invalid_argument | If the chain is empty, mixes symmetries, or contains unequal adjacent auxiliary spaces. |
|
inline |
Replace one MPO site without changing any of its spaces.
| index | Zero-based site index. |
| replacement | New site with exactly equal domain and codomain. |
| std::invalid_argument | If symmetry or spaces differ. |
| std::out_of_range | If index is outside the chain. |
|
inline |
Return the revision of one site.
| index | Zero-based site index. |
| std::out_of_range | If index is outside the chain. |
|
inline |
Return one read-only site.
| index | Zero-based site index. |
| std::out_of_range | If index is outside the chain. |
|
inlinenoexcept |
Return all sites in left-to-right order.
|
inlinenoexcept |
Return the number of sites.
|
inline |
Return the common symmetry context.