channel_metrics.diamond_distance¶
Computes the diamond norm between two quantum channels.
Functions¶
|
Return the diamond norm distance between two quantum channels. |
Module Contents¶
- channel_metrics.diamond_distance.diamond_distance(choi_1, choi_2)¶
Return the diamond norm distance between two quantum channels.
This function is a wrapper around
completely_bounded_trace_norm()
, in that it returns half of the completely bounded trace norm of the difference of its arguments.Note
This calculation becomes very slow for 4 or more qubits.
Examples
Consider the depolarizing and identity channels in a 2-dimensional space. The depolarizing channel parameter is set to 0.2:
import numpy as np from toqito.channels import depolarizing from toqito.channel_metrics import diamond_distance choi_depolarizing = depolarizing(dim=2, param_p=0.2) choi_identity = np.identity(2**2) diamond_distance(choi_depolarizing, choi_identity)
1.0000000000261728
Similarly, we can compute the diamond norm between the dephasing channel (with parameter 0.3) and the identity channel:
import numpy as np from toqito.channels import dephasing from toqito.channel_metrics import diamond_distance choi_dephasing = dephasing(dim=2) choi_identity = np.identity(2**2) diamond_distance(choi_dephasing, choi_identity)
1.0000000000273863
References
- Raises:
ValueError – If matrices are not of equal dimension.
ValueError – If matrices are not square.
- Parameters:
choi_1 (numpy.ndarray) – A 4**N by 4**N matrix (where N is the number of qubits).
choi_2 (numpy.ndarray) – A 4**N by 4**N matrix (where N is the number of qubits).
- Return type:
float