Symmetry
PauliPropagation.symmetrymerge — Method
symmetrymerge(psum::AbstractPauliSum, mapfunc::Function) -> AbstractPauliSumMerge equivalent Pauli strings in psum under a symmetry mapping. Each Pauli string is transformed using mapfunc(pstr) to its canonical representative, and identical representatives are combined.
Arguments
psum: APauliSumcontaining Pauli strings and coefficients.mapfunc: A function mapping eachPauliStringto its canonical representative.
Returns
A new PauliSum where symmetric terms have been merged.
Example
psum = PauliSum(6)
add!(psum, :Z, 3)
add!(psum, :Z, 6)
symmetrymerge(psum, pstr -> _translatetolowestinteger(pstr, psum.nqubits))PauliPropagation.translationmerge — Method
translationmerge(psum::AbstractPauliSum, nx::Integer, ny::Integer)Shift and merge of a psum in a system with 2D translational symmetry.
psum = PauliSum(6)
add!(psum, :Z, 3)
add!(psum, :Z, 6)
translationmerge(psum, 2, 3)PauliPropagation.translationmerge — Method
translationmerge(psum::AbstractPauliSum)Shift and merge of a psum in a system with 1D translational symmetry.
psum = PauliSum(6)
add!(psum, :Z, 3)
add!(psum, :Z, 6)
translationmerge(psum)
>>> PauliSum(nqubits: 6, 1 Pauli term:
2.0 * ZIIIII
)