Superoperator Transformations

superoperator_transformations is module containing tools for converting between different representations of superoperators.

We have arbitrarily decided to use a column stacking convention.

vec and unvec

vec(matrix) Vectorize, or “vec”, a matrix by column stacking.
unvec(vector, shape, int] = None) Take a column vector and turn it into a matrix.

Computational and Pauli Basis

pauli2computational_basis_matrix(dim) Produces a basis transform matrix that converts from the unnormalized pauli basis to the computational basis
computational2pauli_basis_matrix(dim) Produces a basis transform matrix that converts from a computational basis to the unnormalized pauli basis.

Transformations from Kraus

kraus2chi(kraus_ops) Convert a set of Kraus operators (representing a channel) to a chi matrix which is also known as a process matrix.
kraus2superop(kraus_ops) Convert a set of Kraus operators (representing a channel) to a superoperator using the column stacking convention.
kraus2pauli_liouville(kraus_ops) Convert a set of Kraus operators (representing a channel) to a Pauli-Liouville matrix (aka Pauli Transfer matrix).
kraus2choi(kraus_ops) Convert a set of Kraus operators (representing a channel) to a Choi matrix using the column stacking convention.

Transformations from Chi

chi2kraus(chi_matrix) Converts a chi matrix into a list of Kraus operators.
chi2superop(chi_matrix) Converts a chi matrix into a superoperator.
chi2pauli_liouville(chi_matrix) Converts a chi matrix (aka a process matrix) to the Pauli Liouville representation.
chi2choi(chi_matrix) Converts a chi matrix into a Choi matrix.

Transformations from Liouville

superop2kraus(superop) Converts a superoperator into a list of Kraus operators.
superop2chi(superop) Converts a superoperator into a list of Kraus operators.
superop2pauli_liouville(superop) Converts a superoperator into a pauli_liouville matrix.
superop2choi(superop) Convert a superoperator into a choi matrix.

Transformations from Pauli-Liouville (Pauli Transfer Matrix)

pauli_liouville2kraus(pl_matrix) Converts a pauli_liouville matrix into a list of Kraus operators.
pauli_liouville2chi(pl_matrix) Converts a pauli_liouville matrix into a chi matrix.
pauli_liouville2superop(pl_matrix) Converts a pauli_liouville matrix into a superoperator.
pauli_liouville2choi(pl_matrix) Convert a Pauli-Liouville matrix into a choi matrix.

Transformations from Choi

choi2kraus(choi, tol) Converts a Choi matrix into a list of Kraus operators.
choi2chi(choi) Converts a Choi matrix into a chi matrix.
choi2superop(choi) Convert a choi matrix into a superoperator.
choi2pauli_liouville(choi) Convert a choi matrix into a Pauli-Liouville matrix.