MATLAB code for "Negativity and steering"

Download .zip (17kB), or download .tar.bz2 (10kB).

You'll also need a working YALMIP installation (including an SDP solver) and Toby Cubbit's Tx.m.

Example usage

To reproduce Fig. 1 use something like:

X = [0,1;1,0]; Y = [0,-1i;1i,0];
ineqops = zeros(2,2,2,2);
ineqops(:,:,1,1) = X;
ineqops(:,:,2,1) = -X;
ineqops(:,:,1,2) = Y;
ineqops(:,:,2,2) = -Y;
ineqvalues = -2:0.01:2;

lvl1 = minneg_ineq(ineqops, ineqvalues, 1)
lvl2 = minneg_ineq(ineqops, ineqvalues, 2)
lvl3 = minneg_ineq(ineqops, ineqvalues, 3)

The same ineqops would also work in qrange(), srange() and PPTrange().

Update

There was a bug in minneg() which caused it to fail if Bob's reduced state had complex entries. (Line 68 was missing a transpose.) This is now fixed. Thanks to Shin-Liang Chen at National Cheng Kung University for identifying this bug.

I have also included septest() for directly checking whether an assemblage has an LHS model using eq. (2). Thanks to Trent Graham for prodding me into doing this.

[Meanwhile, the "stronger Peres conjecture" has been disproven, shortly followed by the Peres conjecture itself.]


Matthew F. Pusey, May 2013 (updated December 2014)