# Negativity

Negativity | |

Computes the negativity of a bipartite density matrix | |

Other toolboxes required | none |
---|---|

Related functions | PartialTranspose TraceNorm |

Function category | Entanglement measures |

Usable within CVX? | yes (convex) |

` Negativity` is a function that computes the negativity of a bipartite density matrix, which is defined as follows:
\[\mathcal{N}(\rho) := \frac{1}{2}\big( \|\rho^\Gamma\|_1 - 1 \big),\]
where $\rho^\Gamma$ is the partial transpose of $\rho$ and $\|\cdot\|_1$ is the trace norm. Equivalently, the negativity of $\rho$ is the absolute value of the sum of the negative eigenvalues of $\rho^\Gamma$.

## Syntax

`NEG = Negativity(RHO)``NEG = Negativity(RHO,DIM)`

## Argument descriptions

`RHO`: A bipartite density matrix.`DIM`(optional, by default has both subsystems of equal dimension): A specification of the dimensions of the subsystems that`RHO`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(RHO)/DIM`. - If $X \in M_{n_1} \otimes M_{n_2}$ then
`DIM`should be a row vector containing the dimensions (i.e.,`DIM = [n_1, n_2]`).

- If

## Examples

### PPT states have zero negativity

States with positive partial transpose have zero negativity. The following code verifies this fact for one particular Chessboard state:

```
>> rho = ChessboardState(1,2,3,4,5,6);
>> Negativity(rho)
ans =
1.1102e-16
```

### Can be used with CVX

This function is convex and can be used in the objective function or constraints of a CVX optimization problem. For example, the following code finds the maximum overlap of a density matrix $\rho$ with the maximally-entangled pure state, subject to the constraint that its negativity is no larger than 1/2:

```
>> d = 3;
>> phi = MaxEntangled(d);
>> phi = phi*phi'; % the maximally-entangled pure state, represented as a rank-1 density matrix
>> cvx_begin sdp quiet
variable rho(d^2,d^2) hermitian;
maximize trace(phi*rho);
subject to
trace(rho) == 1;
rho >= 0;
Negativity(rho) <= 1/2;
cvx_end
cvx_optval
cvx_optval =
0.6667
```

## Source code

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