Helstrom is a quantum state distinguisher with minimum theoretical worst-case probability of error.
- Distinguish two qubits with minimum worst-case error.
- Obtain POVMs and min_pwc.
- Now available on PyPI!
- Support for qudits now here!
- Support for entangled states coming soon!
Helstrom uses a number of open source projects to work properly:
- CVXPY - Python-embedded modeling language for convex optimization problems!
- MOSEK - The package for large scale convex, conic and mixed-integer optimization.
- NumPy - The fundamental package for scientific computing with Python.
And of course Helstrom itself is a free and open-source software with a public repository on GitHub.
Helstrom has been developed and tested to run on Python 3.8.
Install Python if you have not already.
You could install Helstrom via pip by running:
pip install helstrom
Note: MOSEK requires an academic license to operate. Academic faculty, students or staff gets free license. Apply for a license.
Alternatively, to contribute, download the code as ZIP, extract it, and enter the folder. Then, install the dependencies by typing the following command on your terminal:
cd helstrom-main # Change directory into child directory
pip install -r requirements.txt
Now run the following command on the terminal to use Helstrom's SDP and the results will be printed:
python -m helstrom "1 0; 0 0" "1 0; 0 1"
# Pass in desired states of rho_0 and rho_1 as two arguments
If the two arguments are not provided, by default, the states rho_0 and rho_1 are:
rho_0 = [ 1 0 ] rho_1 = [ 0.5 0 ]
[ 0 0 ] [ 0 0.5 ]
# "1 0; 0 0" # "0.5 0; 0 0.5"
If Helstrom was downloaded via ZIP, you may run helstromSDP.py
directly.
Helstrom can be used as part of your code. Simply,
import helstrom
helstrom.sdp(rho_0, rho_1)
Want to contribute? Great!
Helstrom uses Python for developing. Make changes in your file and create a pull request!