| SRDef syten::MPS::apply_op_itrunc | ( | State & | a, |
| Operator const & | op, | ||
| Truncation | trunc, | ||
| bool const | relax = true, |
||
| bool const | final_rightnorm = true |
||
| ) |
Applies the MPO op to the MPS a, immediately truncating during the application.
| [in,out] | a | the MPS to which the operator is applied |
| [in] | op | the MPO which is applied to the state |
| [in] | trunc | Truncation specification |
| [in] | relax | whether to relax the truncation spec during the initial left-to-right sweep |
| [in] | final_rightnorm | if false, don't do a right-normalisation at the end |
Steps taken:
References syten::MPS::Operator::dIdx, syten::MPS::State::dropUnmatched(), syten::genCombinator(), syten::genFuse(), syten::genSplit(), syten::MPS::Operator::lIdx, syten::MPS::State::lIdx, syten::MPS::State::lInt, syten::Truncation::maxBlocksize, syten::Truncation::maxStates, syten::MPS::State::maybeCache(), norm(), syten::MPS::Operator::rIdx, syten::MPS::State::rIdx, syten::MPS::State::rightnorm(), syten::MPS::State::rInt, syten::MPS::State::size(), syten::SVD::svd(), SYTEN_ASSERT, syten::Truncation::threshold, syten::MPS::Operator::uIdx, syten::MPS::State::uInt, and syten::validateTensorEdge().
Here is the call graph for this function: