Jump to navigation Jump to search
Builds the eigenvalue matrices that determine whether or not a state is absolutely PPT

Other toolboxes required none
Related functions IsAbsPPT
Function category Ball of separability

AbsPPTConstraints is a function that computes the matrices of eigenvalues that determine whether or not a given density matrix $\rho$ is "absolutely PPT" (that is whether or not $U\rho U^\dagger$ has positive partial transpose for all unitary matrices $U$). The state $\rho$ is absolutely PPT if and only if every matrix that this function produces as output is positive semidefinite. The matrices that characterize when a density matrix is absolutely PPT were derived in [1].


  • L = AbsPPTConstraints(LAM)
  • L = AbsPPTConstraints(LAM,DIM)
  • L = AbsPPTConstraints(LAM,DIM,ESC_IF_NPOS)
  • L = AbsPPTConstraints(LAM,DIM,ESC_IF_NPOS,LIM)

Argument descriptions

  • LAM: A bipartite density matrix or a vector containing the eigenvalues of a bipartite density matrix.
  • DIM (optional, default has both subsystems of equal dimension): A specification of the dimensions of the subsystems that the density matrix acts on. DIM can be provided in one of two ways:
    • If DIM is a scalar, it is assumed that the first subsystem has dimension DIM and the second subsystem has dimension length(LAM)/DIM.
    • DIM can be a 1-by-2 vector containing the dimensions of the local subsystems.
  • ESC_IF_NPOS (optional, default 0): A flag, either 1 or 0, indicating that the function should stop computing constraint matrices as soon as it finds one that is not positive semidefinite (i.e., as soon as it finds proof that the density matrix in question is not absolutely PPT).
  • LIM (optional, default 0): A non-negative integer specifying how many constraint matrices should be computed. If this equals 0 then all constraint matrices will be computed.


Qutrit-qutrit states

In the qutrit-qutrit case, a state $\rho$ with eigenvalues $\lambda_1 \geq \lambda_2 \geq \cdots \geq \lambda_9 \geq 0$ is absolutely PPT if and only if the following two matrices are positive semidefinite: \[\begin{bmatrix}2\lambda_9 & \lambda_8-\lambda_1 & \lambda_7-\lambda_2 \\ \lambda_8-\lambda_1 & 2\lambda_6 & \lambda_5-\lambda_3 \\ \lambda_7-\lambda_2 & \lambda_5-\lambda_3 & 2\lambda_4\end{bmatrix} \quad \text{and} \quad \begin{bmatrix}2\lambda_9 & \lambda_8-\lambda_1 & \lambda_6-\lambda_2 \\ \lambda_8-\lambda_1 & 2\lambda_7 & \lambda_5-\lambda_3 \\ \lambda_6-\lambda_2 & \lambda_5-\lambda_3 & 2\lambda_4\end{bmatrix}.\]

We can compute these two matrices for a given set of eigenvalues as follows:

>> rho = RandomDensityMatrix(9);
>> lam = eig(rho);
>> L = AbsPPTConstraints(lam,3) % compute the two constraint matrices

L = 

    [3x3 double]    [3x3 double]

>> L{1}

ans =

    0.0013   -0.3100   -0.2579
   -0.3100    0.0679   -0.1159
   -0.2579   -0.1159    0.2102

>> L{2}

ans =

    0.0013   -0.3100   -0.2381
   -0.3100    0.0282   -0.1159
   -0.2381   -0.1159    0.2102

>> IsPSD(L{1})

ans =

     0 % L{1} is not positive semidefinite, so rho is not absolutely PPT

Can be used with CVX

This function can be used with CVX in order to perform optimizations over the set of absolutely PPT states. In particular, because each of the absolutely PPT constraints requires that a certain matrix be positive semidefinite, we can use semidefinite programming to maximize or minimize a linear function over the set of eigenvalues of all absolutely PPT states. For example, the following code maximizes the largest eigenvalue of all absolutely PPT states in a $(4 \otimes 4)$-dimensional system:

>> d = 4;
>> cvx_begin sdp quiet
   variable lam(d^2);
   L = AbsPPTConstraints(lam,d); % compute the absolutely PPT constraints

   maximize lam(1);
   subject to
       sum(lam) == 1; % eigenvalues of a density matrix sum to 1
       lam >= 0; % eigenvalues of a density matrix are non-negative
       for j = 1:length(L)
           L{j} >= 0; % all of the absolute PPT constraints (there are 10 of them in this case)
       for j = 1:d^2-1
           lam(j) >= lam(j+1); % eigenvalues must be in order

cvx_optval =


Indeed, this agrees with Proposition 8.2 of [2], which says that the largest maximal eigenvalue of absolutely PPT states in a $(k \otimes n)$-dimensional system is $3/(2+nk)$.

IMPORTANT: If you use this function within a CVX optmization problem, make sure that you enforce lam(1) >= lam(2) >= ... >= 0 as one of the constraints in CVX!


  • For all practical purposes, this function can only compute all constraint matrices when at least one of the local dimensions is 6 or less. When both local dimensions are 7 or higher, the LIM argument should be specified (otherwise the computation may take days, weeks, or longer).
  • This function actually computes slightly more constraints than is optimal. It computes the optimal set of constraints when one of the local dimensions is 5 or less, but when the smallest local dimension is 6, it computes 2612 constraint matrices rather than the optimal set of 2608 constraint matrices: the additional 4 matrices are redundant, but do not cause any harm.
  • The optimal number of constraint matrices, when the smaller of the two local dimensions is 2, 3, 4, ..., is given by the sequence 1, 2, 10, 114, 2608, ... (A237749 in the OEIS).
  • Absolutely PPT states are sometimes said to be "PPT from spectrum".

Source code

Click here to view this function's source code on github.


  1. R. Hildebrand. Positive partial transpose from spectra. Phys. Rev. A, 76:052325, 2007. E-print: arXiv:quant-ph/0502170
  2. M. A. Jivulescu, N. Lupa, I. Nechita, and D. Reeb. Positive reduction from spectra. E-print: arXiv:1406.1277 [quant-ph]