36 template<
class Matrix,
class SymmGroup>
39 template<
class Matrix,
class SymmGroup>
42 typedef std::vector<MPSTensor<Matrix, SymmGroup> > data_t;
57 size_t size()
const {
return data_.size(); }
86 template<
class OtherMatrix>
90 std::size_t l,
double alpha,
91 double cutoff, std::size_t Mmax);
92 template<
class OtherMatrix>
96 std::size_t l,
double alpha,
97 double cutoff, std::size_t Mmax);
108 swap(a.data_, b.data_);
109 swap(a.canonized_i, b.canonized_i);
115 mutable size_t canonized_i;
118 template<
class Matrix,
class SymmGroup>
120 template<
class Matrix,
class SymmGroup>
123 template<
class Matrix,
class SymmGroup>
130 template<
class Matrix,
class SymmGroup>
133 double alpha=1.,
double beta=1.)
138 aright.multiply_by_scalar(alpha);
139 bright.multiply_by_scalar(beta);
144 for (std::size_t p = 1; p < a.
length()-1; ++p)
145 ret[p] =
join(a[p], b[p]);
void move_normalization_l2r(size_t p1, size_t p2, DecompMethod method=DefaultSolver())
definition of the MPS object
definition of Boundary object
data_t::iterator iterator
void move_normalization_r2l(size_t p1, size_t p2, DecompMethod method=DefaultSolver())
virtual void operator()(MPS< Matrix, SymmGroup > &mps)=0
truncation_results grow_r2l_sweep(MPOTensor< Matrix, SymmGroup > const &mpo, Boundary< OtherMatrix, SymmGroup > const &left, Boundary< OtherMatrix, SymmGroup > const &right, std::size_t l, double alpha, double cutoff, std::size_t Mmax)
maquis::traits::scalar_type< Matrix >::type scalar_type
void swap(MPSTensor< Matrix, SymmGroup > &x, MPSTensor< Matrix, SymmGroup > &y)
const_iterator const_end() const
virtual ~mps_initializer()
void load(std::string const &dirname, MPS< Matrix, SymmGroup > &mps)
Boundary< Matrix, SymmGroup > left_boundary() const
data_t::const_iterator const_iterator
size_t canonization(bool=false) const
data_t::size_type size_type
const_iterator end() const
Boundary< Matrix, SymmGroup > right_boundary() const
Index< SymmGroup > const & row_dim(size_t i) const
Index< SymmGroup > const & col_dim(size_t i) const
data_t::value_type value_type
declaration of the MPSTensor class
void apply(block_matrix< Matrix, SymmGroup > const &, size_type)
MPS< Matrix, SymmGroup > join(MPS< Matrix, SymmGroup > const &a, MPS< Matrix, SymmGroup > const &b, double alpha=1., double beta=1.)
MPSTensor< Matrix, SymmGroup >::scalar_type scalar_type
const_iterator const_begin() const
declaration of MPOTensor object
std::string description() const
void canonize(size_t center, DecompMethod method=DefaultSolver())
Index< SymmGroup > const & site_dim(size_t i) const
value_type const & operator[](size_t i) const
void save(std::string const &dirname, MPS< Matrix, SymmGroup > const &mps)
friend void swap(MPS &a, MPS &b)
truncation_results grow_l2r_sweep(MPOTensor< Matrix, SymmGroup > const &mpo, Boundary< OtherMatrix, SymmGroup > const &left, Boundary< OtherMatrix, SymmGroup > const &right, std::size_t l, double alpha, double cutoff, std::size_t Mmax)
const_iterator begin() const