27template<
typename PivotMatrixType>
116template<
typename PivotMatrixType>
120 set_defaultCutoffs();
123template<
typename PivotMatrixType>
131template<
typename PivotMatrixType>
143template<
typename PivotMatrixType>
149 assert(pivot == N_sites-1 or pivot == -1);
154 assert(pivot == 0 or pivot == -1);
159template<
typename PivotMatrixType>
163 assert(pivot == 0 or pivot == N_sites-1);
175template<
typename PivotMatrixType>
180 double eps_truncWeight_bak = eps_truncWeight;
181 eps_truncWeight = 0.;
193 eps_truncWeight = eps_truncWeight_bak;
196template<
typename PivotMatrixType>
206 else if (pivot!=-1 and pivot<loc)
210 else if (pivot!=-1 and pivot>loc)
216template<
typename PivotMatrixType>
220 (DIR==
DMRG::DIRECTION::LEFT)? leftSweepStep(loc,TOOL,H,DISCARD_U_or_V) : rightSweepStep(loc,TOOL,H,DISCARD_U_or_V);
void turnaround(int pivot, size_t L, DMRG::DIRECTION::OPTION &DIR)
Flips the sweep direction when the edge is reached.
Base class for all the sweeping stuff. Needs to know PivotMatrixType because sweeps using DMRG::BROOM...
void skim(DMRG::DIRECTION::OPTION DIR, DMRG::BROOM::OPTION TOOL, PivotMatrixType *H=NULL)
void sweepStep(DMRG::DIRECTION::OPTION DIR, size_t loc, DMRG::BROOM::OPTION TOOL, PivotMatrixType *H=NULL, bool DISCARD_U_or_V=false)
void set_defaultCutoffs()
void sweep(size_t loc, DMRG::BROOM::OPTION TOOL, PivotMatrixType *H=NULL)
void skim(DMRG::BROOM::OPTION TOOL, PivotMatrixType *H=NULL)
void set_pivot(int pivot_input)
virtual void rightSweepStep(size_t loc, DMRG::BROOM::OPTION TOOL, PivotMatrixType *H=NULL, bool DISCARD_V=false)
virtual void leftSweepStep(size_t loc, DMRG::BROOM::OPTION TOOL, PivotMatrixType *H=NULL, bool DISCARD_U=false)
DmrgJanitor(size_t L_input)
static double eps_svd(size_t i)
static double max_alpha_rsvd(size_t i)
static constexpr size_t Mlimit
static double eps_truncWeight(size_t i)
static size_t min_Nsv(size_t i)
static int max_Nrich(size_t i)