SyTen

◆ rightnorm() [1/2]

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.

→--[+]→-.    →--.
    ↓   |  =    |
←--[ ]←-'    ←--'
Parameters
sitelocation of tensor to normalise
truncTruncation specification
dropNif the leftmost tensor is normalised, ensure that the total state is normalised.
dropUwhether, and if so, compared to where, drop unmatched blocks
Returns
the error incurred during truncation, calculated as \( sqrt(2 - 2 \sqrt(1-D)) \) where \( D \) is the squared sum of discarded singular values (see thesis for details) or -1 if no states have been kept.

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: