Implementation of a matrix product operator. More...
#include <boost/serialization/base_object.hpp>
#include "inc/util/boost_versioning.h"
#include "inc/tensor/tensor.h"
Classes | |
class | syten::MPS::Operator |
Matrix Product Operator. More... | |
Namespaces | |
namespace | syten |
Syten namespace. | |
namespace | syten::MPS |
The namespace containing all MPS-related tools, classes and objects. | |
Macros | |
#define | SYTEN_MPO_EXPECT_ORDER(a, b, c, d, f) |
Asserts that the supplied macro arguments a , b , c and d are 1 through 4 with the calling funcation named as f . More... | |
Functions | |
Tensor< 4 > | syten::MPS::build_mpo_mpo (Tensor< 4 > const &left, Tensor< 4 > const &right, Basis left_basis=Basis(Direction::Inc), Basis right_basis=Basis(Direction::Inc), bool const flip=false) |
Creates the twosite gate from operator. More... | |
Operator | syten::MPS::dot (Operator const &a, Operator const &b) |
Scalar product of two operators. More... | |
Operator | syten::MPS::dot (Operator const &a, Operator const &b, Sector const &target) |
Scalar product of two operators, i.e. the product of the operators projected on the supplied vacuum sector. More... | |
void | syten::MPS::equiscale (Operator &op) |
Rescales all tensors of the MPO such that the 2-norms of no pair of tensors varies more than by a factor of two. More... | |
Operator | syten::MPS::exp (Operator const &op, SDef const dt, Operator const &I, Index const order=2) |
Computes the exponential of the given operator. More... | |
Tensor< 4 > | syten::MPS::genMPOId (Basis const &upperBasis, Basis const &rightBasis) |
Generates an identity MPO component. More... | |
void | syten::MPS::make_identities (Operator &op, Index const lbound, Index const rbound, Operator const &id) |
If an MPO is not active within the range given it will norm the MPO within this range. More... | |
Tensor< 4 > | syten::MPS::mpo_cmp_dot_prod (Tensor< 4 > const &lower, Tensor< 4 > const &upper, bool const fuse_lhs, Sector const &sec=Sector()) |
Builds a new rank-4 MPO component from two rank-4 MPO components lower and upper multiplied via the dot product, i.e. More... | |
Tensor< 4 > | syten::MPS::mpo_cmp_prod (Tensor< 4 > const &lower, Tensor< 4 > const &upper, bool const fuse_lhs) |
Builds a new rank-4 MPO component from two rank-4 MPO components lower and upper multiplied over the upper (for lower ) and lower (for upper ) physical indices. More... | |
SRDef | syten::MPS::norm (Operator const &a) |
Returns the square root of the overlap of the operator with itself, identical to the Frobenius norm. More... | |
SRDef | syten::MPS::normSqd (Operator const &a) |
Returns the overlap of the operator with itself, identical to the squared Frobenius norm. More... | |
Operator | syten::MPS::operator* (Operator const &a, Operator const &b) |
Product of two MPO, \( \hat r = \hat b \hat a \), i.e. b is applied after a if r is applied to a state. More... | |
Operator | syten::MPS::operator* (Operator const &a, SDef const b) |
Scale a MPO by a scalar, \( \hat r = b \hat a \). More... | |
Operator | syten::MPS::operator* (SDef const b, Operator const &a) |
Scale a MPO by a scalar, \( \hat r = b \hat a \) More... | |
Operator | syten::MPS::operator+ (Operator const &a, Operator const &b) |
Sum of two MPO, \( \hat r = \hat b + \hat a \) More... | |
Operator | syten::MPS::operator- (Operator const &a, Operator const &b) |
Difference of two MPO, \( \hat r = \hat a - \hat b \). More... | |
std::ostream & | syten::MPS::operator<< (std::ostream &out, Operator const &op) |
Prints a MPO. More... | |
SDef | syten::MPS::overlap (Operator const &a, Operator const &b) |
Returns the overlap of two operators \( \hat A \) and \( \hat
B \), equivalent to \(\mathrm{tr}\left(\hat A^\dagger B\right) \). More... | |
void | syten::MPS::shift (Tensor< 4 > &input, std::vector< RDef > const &shift, std::vector< Index > const &whichs) |
Shifts virtual legs by desired amount. More... | |
Implementation of a matrix product operator.