state_props.entanglement_of_formation

Computes the entanglement of formation of a bipartite quantum state.

Module Contents

Functions

entanglement_of_formation(rho[, dim])

Compute entanglement-of-formation of a bipartite quantum state [1].

state_props.entanglement_of_formation.entanglement_of_formation(rho, dim=None)

Compute entanglement-of-formation of a bipartite quantum state [1].

Entanglement-of-formation is the entropy of formation of the bipartite quantum state rho. Note that this function currently only supports rho being a pure state or a 2-qubit state: it is not known how to compute the entanglement-of-formation of higher-dimensional mixed states.

This function was adapted from QETLAB.

Examples

Compute the entanglement-of-formation of a Bell state.

Let \(u = \frac{1}{\sqrt{2}} \left(|00\rangle + |11\rangle \right)\) and let

\[\begin{split}\rho = uu^* = \frac{1}{2}\begin{pmatrix} 1 & 0 & 0 & 1 \\ 0 & 0 & 0 & 0 \\ 0 & 0 & 0 & 0 \\ 1 & 0 & 0 & 1 \end{pmatrix}.\end{split}\]

The entanglement-of-formation of \(\rho\) is equal to 1.

>>> from toqito.state_props import entanglement_of_formation
>>> from toqito.states import bell
>>>
>>> u_vec = bell(0)
>>> rho = u_vec * u_vec.conj().T
>>> '%.2f' % entanglement_of_formation(rho)
'1.00'

Note

You do not need to use ‘%.2f’ % when you use this function.

We use this to format our output such that doctest compares the calculated output to the expected output upto two decimal points only. The accuracy of the solvers can calculate the float output to a certain amount of precision such that the value deviates after a few digits of accuracy.

References

[1] (1,2)

Quantiki. Entanglement of formation. https://www.quantiki.org/wiki/entanglement-formation.

Raises:

ValueError – If matrices have improper dimension.

Parameters:
  • rho (numpy.ndarray) – A matrix or vector.

  • dim (list[int] | int) – The default has both subsystems of equal dimension.

Returns:

A value between 0 and 1 that corresponds to the entanglement-of-formation of rho.

Return type:

float