35 template <
class Matrix,
class SymmGroup>
38 typedef typename SymmGroup::subcharge subcharge;
54 for (
int i = 1; i < L; ++i) {
57 ident.
set(0, 0, identity_matrix<Matrix>(mps[L-i].site_dim()));
59 right_[L-1-i] =
right;
63 ident.
set(0, 0, identity_matrix<Matrix>(mps[i-1].site_dim()));
73 if (!initialized)
init();
79 if (!initialized)
init();
86 mutable std::vector<Boundary<Matrix, SymmGroup> > left_, right_;
87 mutable bool initialized;
void set(index_type li, index_type ri, op_t const &op, value_type scale_=1.0)
declaration of the MPS class (vector of MPSTensor)
const Boundary< Matrix, SymmGroup > & right(int i) const
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)
const Boundary< Matrix, SymmGroup > & left(int i) const
reduced_mps(const MPS< Matrix, SymmGroup > &mps_)
declaration of MPOTensor object
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)
functions to contract tensor network states