Skip to content

Code to accompany "Quantum steering: a short review with focus on semi-definite programming"

License

Notifications You must be signed in to change notification settings

paulskrzypczyk/steeringreview

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

31 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Daniel Cavalcanti and Paul Skrzypczyk

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:

  • CVX - a Matlab-based convex modeling framework
  • QETLAB - A MATLAB Toolbox for Quantum Entanglement

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:

  • 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:

§: These files can be used inside CVX as a means to enforce the corresponding constraint.

: This file additionally needs vert2lcon.

About

Code to accompany "Quantum steering: a short review with focus on semi-definite programming"

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages