STensor syten::STensorImpl::demerge | ( | STensor const & | in, |
SBasis const & | f1, | ||
SBasis const & | f2, | ||
Index | maxBlocksize = Maximum() , |
||
SRDef | ratio = 1. , |
||
Index | minBlocksize = 1 , |
||
bool | ethereal = true , |
||
SourceLocation const & | loc = SourceLocation::current() |
||
) |
Given a tensor and two bases, constructs the merged bases of the two and then splits that basis of the tensor in
back into bases f1 and f2.
References syten::STensorImpl::STensor::bi(), syten::STensorImpl::SBasis::dir(), gen_merge(), prod(), SYTEN_ASSERT_MSG, and SYTEN_PRETTY_SLOC.
Referenced by syten::T3N::Contraction::decontractToPhysicalBranching(), syten::T3N::Contraction::decontractToPhysicalPhysical(), syten::IPEPSv2::directional_qr(), syten::IPEPSv2::directional_svd(), syten::IPEPSv2::exp(), syten::IPEPSv2::expectation_value(), syten::IPEPSv2::full_update_apply_gate(), syten::IPEPSv2::full_update_gauge_fix(), syten::IPEPSv2::full_update_horizontal(), syten::IPEPSv2::full_update_pseudo_invert_r4(), syten::IPEPSv2::full_update_vertical(), syten::IPEPSv2::simple_update(), svd(), syten::T3N::TDVP::Worker::update_phys_branch_phys(), and syten::T3N::TDVP::Worker::update_phys_phys().