pygsti.tools.optools.entanglement_infidelity

pygsti.tools.optools.entanglement_infidelity#

entanglement_infidelity(a, b, mx_basis='pp', is_tp=None, is_unitary=None)#

Returns the entanglement infidelity (EI) between gate matrices.

This i given by:

EI = 1 - Tr( sqrt{ sqrt(J(a)) * J(b) * sqrt(J(a)) } )^2

where J(.) is the Jamiolkowski isomorphism map that maps a operation matrix to it’s corresponding Choi Matrix.

Parameters:
  • a (numpy array) – First matrix.

  • b (numpy array) – Second matrix.

  • mx_basis ({'std', 'gm', 'pp', 'qt'} or Basis object) – The basis of the matrices. Allowed values are Matrix-unit (std), Gell-Mann (gm), Pauli-product (pp), and Qutrit (qt) (or a custom basis object).

  • is_tp (bool, optional (default None)) – Flag indicating both matrices are TP. If None (the default), an explicit check is performed. If True/False, the check is skipped and the provided value is used (faster, but should only be used when the user is certain this is true apriori).

  • is_unitary (bool, optional (default None)) – Flag indicating that the second matrix, b, is unitary. If None (the default) an explicit check is performed. If True/False, the check is skipped and the provided value is used (faster, but should only be used when the user is certain this is true apriori).

Returns:

EI – The EI of a to b.

Return type:

float