SyTen
operator.h File Reference

Implementation of a matrix product operator. More...

#include <boost/serialization/base_object.hpp>
#include "inc/util/boost_versioning.h"
#include "inc/tensor/tensor.h"
+ Include dependency graph for operator.h:
+ This graph shows which files directly or indirectly include this file:

Classes

class  syten::MPS::Operator
 Matrix Product Operator. More...
 

Namespaces

 syten
 Syten 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

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...
 
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 of a matrix product operator.