SyTen
operator.cpp File Reference

Implementation for inc/mps/operator.h. More...

+ Include dependency graph for operator.cpp:

Namespaces

namespace  syten
 Syten namespace.
 
namespace  syten::MPS
 The namespace containing all MPS-related tools, classes and objects.
 

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::ostreamsyten::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...
 

Detailed Description

Implementation for inc/mps/operator.h.