Pair< Tensor< 4 >, Tensor< 4 > > syten::MPS::build_exchange_tensors_above | ( | Basis const & | a, |
Basis const & | b, | ||
Basis const & | vac, | ||
std::vector< Pair< Index, Index > > const & | fermions | ||
) |
Given two incoming physical bases (upper indices of MPS or MPO), builds two active site tensors switching them around.
a | former first basis, occuring somewhere to the left of b |
b | former right basis, occuring somewhere to the right of a |
vac | vacuum basis, LHS basis of left active MPO component and RHS basis of right active MPO component |
fermions | vector of Fermionic symmetries and labels, a pair <s,l> specifies that a state with the 0-indexed l'th label of the 1-indexed s'th symmetry odd is fermionic. |
References syten::MPS::Operator::dInt, syten::Basis::dir, syten::Basis::flipped(), syten::genFuse(), syten::genIINode(), syten::genOONode(), syten::genSplit(), syten::Tensor< rank >::getBasis(), syten::Inc, syten::MPS::Operator::lInt, std::make_pair(), std::move(), syten::MPS::Operator::rInt, syten::split(), SYTEN_ASSERT, and syten::MPS::Operator::uInt.
Referenced by build_exchange_mpo_above().