channel_props.is_herm_preserving¶
Determines if a channel is Hermiticity-preserving.
Functions¶
|
Determine whether the given channel is Hermitian-preserving. |
Module Contents¶
- channel_props.is_herm_preserving.is_herm_preserving(phi, rtol=1e-05, atol=1e-08)¶
Determine whether the given channel is Hermitian-preserving.
(Section: Linear Maps Of Square Operators from [1]).
A map \(\Phi \in \text{T} \left(\mathcal{X}, \mathcal{Y} \right)\) is Hermitian-preserving if it holds that
\[\Phi(H) \in \text{Herm}(\mathcal{Y})\]for every Hermitian operator \(H \in \text{Herm}(\mathcal{X})\).
Examples
The map \(\Phi\) defined as
\[\Phi(X) = X - U X U^*\]is Hermitian-preserving, where
\[\begin{split}U = \frac{1}{\sqrt{2}} \begin{pmatrix} 1 & 1 \\ -1 & 1 \end{pmatrix}.\end{split}\]>>> import numpy as np >>> from toqito.channel_props import is_herm_preserving >>> unitary_mat = np.array([[1, 1], [-1, 1]]) / np.sqrt(2) >>> kraus_ops = [[np.identity(2), np.identity(2)], [unitary_mat, -unitary_mat]] >>> is_herm_preserving(kraus_ops) True
We may also verify whether the corresponding Choi matrix of a given map is Hermitian-preserving. The swap operator is the Choi matrix of the transpose map, which is Hermitian-preserving as can be seen as follows:
>>> import numpy as np >>> from toqito.perms import swap_operator >>> from toqito.channel_props import is_herm_preserving >>> unitary_mat = np.array([[1, 1], [-1, 1]]) / np.sqrt(2) >>> choi_mat = swap_operator(3) >>> is_herm_preserving(choi_mat) True
References
[1]John Watrous. The Theory of Quantum Information. Cambridge University Press, 2018. URL: https://johnwatrous.com/wp-content/uploads/TQI.pdf, doi:10.1017/9781316848142.
- Parameters:
phi (numpy.ndarray | list[list[numpy.ndarray]]) – The channel provided as either a Choi matrix or a list of Kraus operators.
rtol (float) – The relative tolerance parameter (default 1e-05).
atol (float) – The absolute tolerance parameter (default 1e-08).
- Returns:
True if the channel is Hermitian-preserving, and False otherwise.
- Return type:
bool