SyTen

◆ demerge()

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.

Remarks
This function is autodifferentiable but then requires explicit construction of the full demerging tensor.

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().

+ Here is the call graph for this function:
+ Here is the caller graph for this function: