SyTen

◆ expand() [2/2]

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.

Remarks
This function is not autodifferentiable.

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

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