state_props.is_npt

Check if state has NPT (negative partial transpose) criterion.

Module Contents

Functions

is_npt(mat[, sys, dim, tol])

Determine whether or not a matrix has negative partial transpose [1].

state_props.is_npt.is_npt(mat, sys=2, dim=None, tol=None)

Determine whether or not a matrix has negative partial transpose [1].

Yields either True or False, indicating that mat does or does not have negative partial transpose (within numerical error). The variable mat is assumed to act on bipartite space. [2]

A state has negative partial transpose if it does not have positive partial transpose.

Examples

To check if a matrix has negative partial transpose

>>> import numpy as np
>>> from toqito.state_props import is_npt
>>> from toqito.states import bell
>>> is_npt(bell(2) @ bell(2).conj().T, 2)
True

References

[1] (1,2)

Wikipedia. Peres-horodecki criterion. https://en.wikipedia.org/wiki/Peres.

[2]

David P. DiVincenzo, Peter W. Shor, John A. Smolin, Barbara M. Terhal, and Ashish V. Thapliyal. Evidence for bound entangled states with negative partial transpose. Physical Review A, May 2000. URL: http://dx.doi.org/10.1103/PhysRevA.61.062312, doi:10.1103/physreva.61.062312.

Parameters:
  • mat (numpy.ndarray) – A square matrix.

  • sys (int) – Scalar or vector indicating which subsystems the transpose should be applied on. Default value is 2.

  • dim (int | list[int]) – The dimension is a vector containing the dimensions of the subsystems on which mat acts.

  • tol (float) – Tolerance with which to check whether mat is PPT.

Returns:

Returns True if mat is NPT and False if not.

Return type:

bool