# 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, sys, dim) 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, sys) Compute the Choi matrix of a list of Kraus operators [WatKraus18]. toqito.channel_ops.partial_channel(rho, …) 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(…) 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, rtol, atol) Determine whether the given channel is positive [WatPM18]. toqito.channel_props.is_trace_preserving(…) 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].