ALPS MPS Codes
Reference documentation.
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Public Member Functions | List of all members
reduced_mps< Matrix, SymmGroup > Class Template Reference

#include <reduced_mps.h>

Public Member Functions

 reduced_mps (const MPS< Matrix, SymmGroup > &mps_)
 
void init () const
 
const Boundary< Matrix,
SymmGroup > & 
left (int i) const
 
const Boundary< Matrix,
SymmGroup > & 
right (int i) const
 

Detailed Description

template<class Matrix, class SymmGroup>
class reduced_mps< Matrix, SymmGroup >

Definition at line 36 of file reduced_mps.h.

Constructor & Destructor Documentation

template<class Matrix , class SymmGroup >
reduced_mps< Matrix, SymmGroup >::reduced_mps ( const MPS< Matrix, SymmGroup > &  mps_)
inline

Definition at line 40 of file reduced_mps.h.

41  : mps(mps_)
42  , L(mps.length())
43  , left_(L)
44  , right_(L)
45  , initialized(false)
46  { }

Member Function Documentation

template<class Matrix , class SymmGroup >
void reduced_mps< Matrix, SymmGroup >::init ( ) const
inline

Definition at line 48 of file reduced_mps.h.

49  {
50  // init right_ & left_
51  Boundary<Matrix, SymmGroup> right = mps.right_boundary(), left = mps.left_boundary();
52  right_[L-1] = right;
53  left_[0] = left;
54  for (int i = 1; i < L; ++i) {
55  {
57  ident.set(0, 0, identity_matrix<Matrix>(mps[L-i].site_dim()));
58  right = contraction::overlap_mpo_right_step(mps[L-i], mps[L-i], right, ident);
59  right_[L-1-i] = right;
60  }
61  {
63  ident.set(0, 0, identity_matrix<Matrix>(mps[i-1].site_dim()));
64  left = contraction::overlap_mpo_left_step(mps[i-1], mps[i-1], left, ident);
65  left_[i] = left;
66  }
67  }
68  initialized = true;
69  }
void set(index_type li, index_type ri, op_t const &op, value_type scale_=1.0)
Definition: mpotensor.hpp:106
const Boundary< Matrix, SymmGroup > & right(int i) const
Definition: reduced_mps.h:77
static Boundary< OtherMatrix, SymmGroup > overlap_mpo_right_step(MPSTensor< Matrix, SymmGroup > const &bra_tensor, MPSTensor< Matrix, SymmGroup > const &ket_tensor, Boundary< OtherMatrix, SymmGroup > const &right, MPOTensor< Matrix, SymmGroup > const &mpo)
Definition: contractions.h:386
const Boundary< Matrix, SymmGroup > & left(int i) const
Definition: reduced_mps.h:71
static Boundary< OtherMatrix, SymmGroup > overlap_mpo_left_step(MPSTensor< Matrix, SymmGroup > const &bra_tensor, MPSTensor< Matrix, SymmGroup > const &ket_tensor, Boundary< OtherMatrix, SymmGroup > const &left, MPOTensor< Matrix, SymmGroup > const &mpo)
Definition: contractions.h:340
template<class Matrix , class SymmGroup >
const Boundary<Matrix, SymmGroup>& reduced_mps< Matrix, SymmGroup >::left ( int  i) const
inline

Definition at line 71 of file reduced_mps.h.

72  {
73  if (!initialized) init();
74  return left_[i];
75  }
void init() const
Definition: reduced_mps.h:48
template<class Matrix , class SymmGroup >
const Boundary<Matrix, SymmGroup>& reduced_mps< Matrix, SymmGroup >::right ( int  i) const
inline

Definition at line 77 of file reduced_mps.h.

78  {
79  if (!initialized) init();
80  return right_[i];
81  }
void init() const
Definition: reduced_mps.h:48

The documentation for this class was generated from the following file: