SyTen

◆ switch_sites()

void syten::MPS::switch_sites ( MPS::Operator op,
Index const  sa,
Index const  sb,
std::vector< Pair< Index, Index > > const &  fermions 
)

Given an MPO op, switches neighbouring sites sa and sb with fermionic sectors as specified by fermions where sa+1 == sb.

Parameters
[in,out]opin- and output MPO reference
[in]safirst site to exchange, has to be on the left of sb (sa < sb)
[in]sbsecond site to exchange, has to be on the right of sa (sb > sa)
fermionsvector 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 build_exchange_tensors_below(), syten::MPS::Operator::dIdx, mpo_cmp_prod(), syten::MPS::Operator::rIdx, and SYTEN_ASSERT_MSG.

Referenced by syten::MPS::SwappableTEBD::exponentiate_factor_mpo().

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