Channels

A quantum channel can be defined as a completely positive and trace preserving linear map.

More formally, let \(\mathcal{X}\) and \(\mathcal{Y}\) represent complex Euclidean spaces and let \(\text{L}(\cdot)\) represent the set of linear operators. Then a quantum channel, \(\Phi\) is defined as

\[\Phi : \text{L}(\mathcal{X}) \rightarrow \text{L}(\mathcal{Y})\]

such that \(\Phi\) is completely positive and trace preserving.

Distance Metrics for Quantum Channels

toqito.channel_metrics.channel_fidelity(...)

Compute the channel fidelity between two quantum channels [VW20].

Quantum Channels

toqito.channels.choi([a_var, b_var, c_var])

Produce the Choi channel or one of its generalizations [Choi92].

toqito.channels.dephasing(dim[, param_p])

Produce the partially dephasing channel [WatDeph18].

toqito.channels.depolarizing(dim[, param_p])

Produce the partially depolarizing channel [WikDepo], [WatDepo18].

toqito.channels.partial_trace(input_mat[, ...])

Compute the partial trace of a matrix [WikPtrace].

toqito.channels.partial_transpose(rho[, ...])

Compute the partial transpose of a matrix [WikPtrans].

toqito.channels.realignment(input_mat[, dim])

Compute the realignment of a bipartite operator [LAS08].

toqito.channels.reduction(dim[, k])

Produce the reduction map or reduction channel.

Operations on Quantum Channels

toqito.channel_ops.apply_channel(mat, phi_op)

Apply a quantum channel to an operator [WatAChan18].

toqito.channel_ops.choi_to_kraus(choi_mat[, tol])

Compute a list of Kraus operators from the Choi matrix [Rigetti20].

toqito.channel_ops.kraus_to_choi(kraus_ops)

Compute the Choi matrix of a list of Kraus operators [WatKraus18].

toqito.channel_ops.partial_channel(rho, phi_map)

Apply channel to a subsystem of an operator [WatPMap18].

toqito.channel_ops.dual_channel(phi_op[, dims])

Compute the dual of a map (quantum channel) [WatDChan18].

Properties of Quantum Channels

toqito.channel_props.is_completely_positive(phi)

Determine whether the given channel is completely positive [WatCP18].

toqito.channel_props.is_herm_preserving(phi)

Determine whether the given channel is Hermitian-preserving [WatH18].

toqito.channel_props.is_positive(phi[, ...])

Determine whether the given channel is positive [WatPM18].

toqito.channel_props.is_trace_preserving(phi)

Determine whether the given channel is trace-preserving [WatTP18].

toqito.channel_props.is_unital(phi[, rtol, atol])

Determine whether the given channel is unital [WatUnital18].

toqito.channel_props.choi_rank(phi)

Calculate the rank of the Choi representation of a quantum channel [WatChoiRank18].

toqito.channel_props.is_quantum_channel(phi)

Determine whether the given input is a quantum channel [WatQC18].

toqito.channel_props.is_unitary(phi)

Given a quantum channel, determine if it is unitary [WatIU18].