toqito.channel_ops.dual_channel
- toqito.channel_ops.dual_channel(phi_op, dims=None)[source]
Compute the dual of a map (quantum channel) [WatDChan18].
The map can be represented as a Choi matrix, with optional specification of input and output dimensions. In this case the Choi matrix of the dual channel is returned, obtained by swapping input and output (see
toqito.perms.swap()), and complex conjugating all elements.The map can also be represented as a list of Kraus operators. A list of lists, each containing two elements, corresponds to the families of operators \(\{(A_a, B_a)\}\) representing the map
\[\Phi(X) = \sum_a A_a X B^*_a.\]The dual map is obtained by taking the Hermitian adjoint of each operator. If
phi_opis given as a one-dimensional list, \(\{A_a\}\), it is interpreted as the completely positive map\[\Phi(X) = \sum_a A_a X A^*_a.\]References
[WatDChan18]Watrous, John. The theory of quantum information. Section: Representations and characterizations of channels. Cambridge University Press, 2018.
- Raises:
ValueError – If matrices are not Choi matrix.
- Parameters:
phi_op – A superoperator. It should be provided either as a Choi matrix, or as a (1d or 2d) list of numpy arrays whose entries are its Kraus operators.
dims – Dimension of the input and output systems, for Choi matrix representation. If
None, try to infer them fromphi_op.shape.
- Returns:
The map dual to
phi_op, in the same representation.