Pauli Transfer Matrix
Matrices
PauliPropagation.calculateptm — Methodfunction calculateptm(mat; tol=1e-15, heisenberg=true)
function calculateptm(dtype, mat; tol=1e-15, heisenberg=true)Calculate the Pauli Transfer Matrix (PTM) of a matrix mat. The PTM will be real-valued in the Pauli basis. However, it can be complex in a general basis. Pass an optional data type dtype when entries are not floats. We truncate small complex components and abs values in the PTM using the tol parameter. Note, by default the PTM is calculated in the -> Heisenberg picture <-, i.e., the PTM is that of the conjugate transpose of the matrix. This can be changed via the heisenberg::Bool keyword argument. Arguments
mat::Matrix: The evolutioin gate matrix for which the PTM is calculated.tol::Float64=1e-15: The tolerance for dropping small values in the PTM.heisenberg::Bool=true: Whether the PTM is calculated in the Heisenberg picture.dtype::DataType: Default type for a real PTM isFloat64.
Returns
ptm::Matrix: The PTM of the conjugate transpose of matrixmat.
PauliPropagation.getpaulibasis — Methodgetpaulimatrices(nq::Int)Compute the Pauli basis for n qubits.
Arguments
n::Int: The number of qubits.
Returns
basis::Vector{Array{ComplexF64}}: The Pauli basis fornqqubits.
Transfer maps
PauliPropagation.totransfermap — Functiontotransfermap(nq::Integer, circuit::Vector{Gate}, thetas=nothing)Computes the Pauli transfer map acting on nq qubits from a circuit with parameters thetas. thetas defaults to nothing but is required if the circuit contains parametrized gates. The returned lookup map is a vector of vectors like [(pstr1, coeff1), (pstr2, coeff2), ...], where the pstr are partial Pauli strings on the affected qubits.
PauliPropagation.totransfermap — Methodtotransfermap(ptm::Matrix)Computes the Pauli transfer map acting on nq qubits from a Pauli Transfer Matrix (PTM). The PTM should be the matrix representation of a gate in Pauli basis. The returned lookup map is a vector of vectors like [(pstr1, coeff1), (pstr2, coeff2), ...], where the pstr are partial Pauli strings on the affected qubits.