std::tuple< STensor, Vec< SBasis > > syten::STensorImpl::expand | ( | STensor const & | a, |
STensor const & | b, | ||
ConstSpan< Pair< SBasis, SBasis > > | expandees | ||
) |
Constructs an expanded tensor in which a
is placed first and b
is placed second.
All shared bases of a
and b
are taken to be identical and all others are matched up as described in the expandees
list.
References syten::STensorImpl::STensor::autodiff_enabled(), syten::STensorImpl::STensor::b(), change_fermionic_order(), combine_bases(), syten::Vec< T >::cs(), syten::STensorImpl::SBasis::dir(), syten::Tensor< rank >::emplace_back(), expand(), syten::STensorImpl::STensor::get_bases(), syten::STensorImpl::STensor::get_fermionic_order(), syten::SpanImpl::is_sorted(), multi_transpose(), std::vector< T >::push_back(), syten::STensorImpl::STensor::rank(), syten::Tensor< rank >::reserve(), std::vector< T >::reserve(), syten::resize(), SYTEN_ASSERT_MSG, SYTEN_TENSOR_RANK, and syten::STensorImpl::STensor::visnz().
Referenced by syten::IPEPSv2::add(), expand(), syten::T3N::DMRG::Run::expandBranch(), syten::IPEPSv2::full_update_apply_gate(), syten::MPS::TDVP::Worker::locally_expand_bond(), syten::T3N::TDVP::Worker::project_onto_orthogonal_complement(), and syten::T3N::DMRG::Run::update_phys_branching().