state_props.in_separable_ball

Checks whether operator is in the ball of separability centered at the maximally-mixed state.

Functions

in_separable_ball(mat)

Check whether an operator is contained in ball of separability [1].

Module Contents

state_props.in_separable_ball.in_separable_ball(mat)

Check whether an operator is contained in ball of separability [1].

Determines whether mat is contained within the ball of separable operators centered at the identity matrix (i.e. the maximally-mixed state). The size of this ball was derived in [1].

This function can be used as a method for separability testing of states in certain scenarios.

This function is adapted from QETLAB.

Examples

The only states acting on \(\mathbb{C}^m \otimes \mathbb{C}^n\) in the separable ball that do not have full rank are those with exactly 1 zero eigenvalue, and the \(mn - 1\) non-zero eigenvalues equal to each other.

The following is an example of generating a random density matrix with eigenvalues [1, 1, 1, 0]/3. This example yields a matrix that is contained within the separable ball.

>>> from toqito.rand import random_unitary
>>> from toqito.state_props import in_separable_ball
>>> import numpy as np
>>>
>>> U = random_unitary(4)
>>> lam = np.array([1, 1, 1, 0]) / 3
>>> rho = U @ np.diag(lam) @ U.conj().T
>>> in_separable_ball(rho)
np.True_

The following is an example of generating a random density matrix with eigenvalues [1.01, 1, 0.99, 0]/3. This example yields a matrix that is not contained within the separable ball.

>>> from toqito.rand import random_unitary
>>> from toqito.state_props import in_separable_ball
>>> import numpy as np
>>>
>>> U = random_unitary(4)
>>> lam = np.array([1.01, 1, 0.99, 0]) / 3
>>> rho = U @ np.diag(lam) @ U.conj().T
>>> in_separable_ball(rho)
np.False_

References

[1] (1,2,3)

Leonid Gurvits and Howard Barnum. Largest separable balls around the maximally mixed bipartite quantum state. Physical Review A, Dec 2002. URL: http://dx.doi.org/10.1103/PhysRevA.66.062311, doi:10.1103/physreva.66.062311.

Parameters:

mat (numpy.ndarray) – A positive semidefinite matrix or a vector of the eigenvalues of a positive semidefinite matrix.

Returns:

True if the matrix mat is contained within the separable ball, and False otherwise.

Return type:

bool