IsPPT

From QETLAB
Revision as of 15:48, 21 November 2012 by Nathaniel (talk | contribs) (Created page with "{{Function |name=IsPPT |desc=Determines whether or not a matrix has positive partial transpose |req=IsPSD, opt_args, PartialTranspose, PermuteSystems |upd=...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search
IsPPT
Determines whether or not a matrix has positive partial transpose

Other toolboxes required IsPSD, opt_args, PartialTranspose, PermuteSystems

IsPPT is a function that determines whether or not a given matrix has positive partial transpose (PPT), which is a quick and easy separability criterion. This function works on both full and sparse matrices, and if desired a witness can be provided that verifies that the input matrix is not PPT.

Syntax

  • PPT = IsPPT(X)
  • PPT = IsPPT(X,SYS)
  • PPT = IsPPT(X,SYS,DIM)
  • PPT = IsPPT(X,SYS,DIM,TOL)
  • [PPT,WIT] = IsPPT(X,SYS,DIM,TOL)

Argument descriptions

Input arguments

  • X: A square matrix.
  • SYS (optional, default 2): A scalar or vector indicating which subsystem(s) the transpose should be applied on.
  • DIM (optional, default has X living on two subsystems of equal size): A vector containing the dimensions of the (possibly more than 2) subsystems on which X lives.
  • TOL (optional, default sqrt(eps)): The numerical tolerance used when determining positive semidefiniteness. The matrix will be determined to have positive partial transpose if its partial transpose's minimal eigenvalue is computed to be at least -TOL.

Output arguments

  • PPT: A flag (either 1 or 0) indicating that X does or does not have positive partial transpose.
  • WIT (optional): An eigenvector corresponding to the minimal eigenvalue of PartialTranspose(X). When PPT = 0, this serves as a witness that verifies that X does not have positive partial transpose, since WIT'*PartialTranspose(X)*WIT < 0.

Examples

Please fill in examples here.