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.
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().
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)