10#include "utils/vec_clone.hpp"
13#include <initializer_list>
22 class DMRG_impl :
public intrusive_ptr_base<DMRG_impl> {
29 std::vector<MPS> ortho_mps;
37 std::vector<UniTensor> LR;
38 std::vector<std::vector<UniTensor>> hLRs;
54 boost::intrusive_ptr<DMRG_impl> _impl;
55 DMRG(
MPO mpo,
MPS mps, std::vector<MPS> ortho_mps = {},
const double &weight = 30)
56 : _impl(
new DMRG_impl()) {
60 this->_impl->mpo = mpo;
61 this->_impl->mps = mps;
64 this->_impl->ortho_mps = ortho_mps;
65 this->_impl->weight = weight;
68 DMRG(
const DMRG &rhs) { _impl = rhs._impl; }
84 return this->_impl->sweep(verbose, maxit, krydim);
90 return this->_impl->sweepv2(verbose, maxit, krydim);
A class to represent a scalar.
Definition Scalar.hpp:2470
Scalar sweepv2(const bool &verbose=false, const cytnx_int64 &maxit=4000, const cytnx_int64 &krydim=4)
Definition DMRG.hpp:88
DMRG & initialize()
Definition DMRG.hpp:76
DMRG & operator=(const DMRG &rhs)
Definition DMRG.hpp:71
Scalar sweep(const bool &verbose=false, const cytnx_int64 &maxit=4000, const cytnx_int64 &krydim=4)
Definition DMRG.hpp:82
Definition Accessor.hpp:12
int64_t cytnx_int64
Definition Type.hpp:48