Code to accompany Quantum steering: a review with focus on semi-definite programming
This repository provides a small collection of code which implements many of the semidefinite programs presented in the review article
Quantum steering: a review with focus on semi-definite programming
Daniel Cavalcanti and Paul Skrzypczyk
Rep. Prog. Phys. 80 024001 (2017) .
All code is written in MATLAB and requires:
It has been tested on Matlab R2014a, and CVX 2.1
The code comprises the following:
-
Membership, helper, and misc:
- NSAssemblage: determine whether a bipartite assemblage is a valid non-signalling assemblage or not§.
- LHSAssemblage: determine whether a biparitte assemblage has an LHS model or not§.
- genAssemblage: generate an assemblage starting from a quantum state and a set of measurements.
- validPOVMs: determine whether a set of POVMs is valid or not§.
- JMPOVMs: determine whether a set of measurements is jointly measurable or not§.
- genRandProjMeas: generate a random set of projective measurements.
- genSinglePartyArray: generate the single-party determinstic probability distributions
- bestSteeringMeasurements: find the optimal measurements given a state and a steering functional.
- bestSteeringState: find the optimal state given a set of measurements and a steering functional.
- findRadiusPolytopeInBlochSphere: determine the radius of the largest ball which can fit inside a polytope contained in the Bloch ball determined by a set of measurements¶.
-
Steering quantifiers:
- steeringRobustness: calculate the (standard/consistent) Steering Robustness of an assemblage.
- steeringWeight: calculate the (standard/consistent) Steering Weight of an assemblage.
- steeringLHSRobustness: calculate the (standard/consistent) Steering LHS-Robustness of an assemblage.
- steeringRobustnessState: estimate the Steering Robustness of a state.
- steeringWeightState: estimate the Steering Weight of a state.
-
Local-Hidden-State models:
- targetStatePVMLHS: determine if a qubit-qudit state has an LHS model for all projective measurements on Alice.
- targetStatePOVMLHS: determine if a qubit-qudit state has an LHS model for all POVMs on Alice.
- findPVMLHSStateGivenWitness: find a qubit-qudit state that has an LHS model for all projective measurements on Alice and violates a given entanglement witness.
- findPOVMLHSStateGivenWitness: find a qubit-qudit state that has an LHS model for all POVMs on Alice and violates a given entanglement witness.
-
Multipartite steering:
- fLHSTripartite1Unt: determine if a tripartite assemblage with one untrusted device could have arisen from a fully-local state.
- fLHSTripartite2Unt: determine if a tripartite assemblage with two untrusted devices could have arisen from a fully-local state.
- bLHSTripartite1Unt: determine if a tripartite assemblage with one untrusted device could have arisen from a bi-separable state.
bLHSTripartite2Unt: determine if a tripartite assemblage with two untrusted devices could have arisen from a bi-separable state. still to come
-
Applications:
- localSteeringGuessProb: calculate the one-sided device-independent local guessing prob. of an assemblage.
- globalSteeringGuessProb: calculate the one-sided device-independent global guessing prob. of an assemblage.
- localSteeringGuessProbState: estimate the one-sided device-independent local guessing prob. of a state.
- globalSteeringGuessProbState: estimate the one-sided device-independent global guessing prob. of a state.
§: These files can be used inside CVX as a means to enforce the corresponding constraint.
¶: This file additionally needs vert2lcon.