process_fidelity¶
- process_fidelity(channel, target=None, require_cp=True, require_tp=False, require_cptp=False)[source]¶
Return the process fidelity of a noisy quantum channel.
This process fidelity \(F_{\text{pro}}\) is given by
\[F_{\text{pro}}(\mathcal{E}, U) = \frac{Tr[S_U^\dagger S_{\mathcal{E}}]}{d^2}\]where \(S_{\mathcal{E}}, S_{U}\) are the
SuperOp
matrices for the input quantum channel \(\cal{E}\) and target unitary \(U\) respectively, and \(d\) is the dimension of the channel.- Parameters
channel (QuantumChannel) – noisy quantum channel.
target (Operator or None) – target unitary operator. If None target is the identity operator [Default: None].
require_cp (bool) – require channel to be completely-positive [Default: True].
require_tp (bool) – require channel to be trace-preserving [Default: False].
require_cptp (bool) – (DEPRECATED) require input channels to be CPTP [Default: False].
- Returns
The process fidelity \(F_{\text{pro}}\).
- Return type
float
- Raises
QiskitError – if the channel and target do not have the same dimensions, or have different input and output dimensions.
QiskitError – if the channel and target or are not completely-positive (with
require_cp=True
) or not trace-preserving (withrequire_tp=True
).