| SRDef syten::MPS::State::rightnorm | ( | Index const | site, |
| Truncation | trunc = Truncation(), |
||
| State::DropNorm const | dropN = DropNorm::Yes, |
||
| State::DropUnmatched const | dropU = DropUnmatched::lr |
||
| ) |
Right-normalises the tensor \(X_i\) on the specified site as \(X_i^{\sigma_i} \to U S V^\sigma\) and multiplies the corresponding transformation \(US\) in the next tensor on the left \(X_{i-1} \to X_{i-1} U S\).
After normalisation, the contraction of \(X\) with its hermitian conjugate over the physical and right indices should give an identity matrix.
→--[+]→-. →--.
↓ | = |
←--[ ]←-' ←--'
| site | location of tensor to normalise |
| trunc | Truncation specification |
| dropN | if the leftmost tensor is normalised, ensure that the total state is normalised. |
| dropU | whether, and if so, compared to where, drop unmatched blocks |
References syten::clear(), dropUnmatched(), lIdx, lInt, syten::MPS::norm(), syten::QR::qr(), rInt, syten::singValSqdToError(), size(), syten::SVD::svd(), SYTEN_ZNORM_THRESHOLD, uInt, and syten::underThreshold().
Referenced by syten::allSiteEntropy(), syten::mutualInfo::allSiteEntropy(), syten::MPS::apply_op_itrunc(), syten::MPS::DMRG::PDMRG::assembleState(), syten::MPS::block_entropies(), syten::MPS::ProjectedPurification::correlator(), syten::mutualInfo::entropyOneSite(), syten::entropyOneSite(), syten::entropyTwoSite(), syten::mutualInfo::entropyTwoSite(), syten::MPS::TDVP::PTDVP< enable >::get_psi(), syten::Pyten::init_mps(), syten::MPS::ProjectedPurification::local_expectation(), syten::MPS::Snapshots::Workspace::move_to_site(), syten::MPS::RDMs::OrbRDM::OrbRDM(), syten::MPS::orthogonalise_variational(), rightnorm(), syten::MPS::schmidt_decompositions(), syten::MPS::schmidt_values(), truncate(), truncateVariational(), syten::MPS::DMRG::Worker::Worker(), and syten::MPS::TDVP::Worker::Worker().
Here is the call graph for this function:
Here is the caller graph for this function: