Getting started

Warning

Efficacy of toqito has not been verified on Windows.

Installing

1. Ensure you have Python 3.10 or greater installed on your machine or in a virtual environment (pyenv, pyenv tutorial).

2. Consider using a virtual environment. You can also use pyenv with virtualenv to manage different Python versions.

3. The preferred way to install the toqito package is via poetry as it is a better dependency resolver compared to pip. Currently, it would be better to avoid pip in installing toqito due to a slew of known issues . But this involves installing an editable version of toqito as described in the Contributing Guide.

If you prefer to not install an editable version of toqito, use:

(local_venv) pip install toqito

Above command will also install other additional dependencies for toqito.

The toqito module makes heavy use of the cvxpy module for solving various convex optimization problems that naturally arise for certain problems in quantum information. The installation instructions for cvxpy may be found on the project’s installation page. However these installation instructions can be ignored as pip install toqito will also install cvxpy as a dependency.

Note

macOS already ships with BLAS and LAPACK installed by default under the Accelerate framework.

As a dependency for many of the solvers, you will need to ensure you have the BLAS and LAPACK mathematical libraries installed on your machine. If you have numpy working on your machine (installed as a toqito dependency), you already have these libraries on your machine. See NumPy docs. If you don’t, BLAS and LAPACK can be installed using the following command:

(For Linux) sudo apt-get install -y libblas-dev liblapack-dev

The cvxpy module provides many different solvers to select from for solving SDPs. We tend to use the SCS solver. Ensure that you have the scs Python module installed and built for your machine. Again, this discussion can be ignored as pip install toqito will also install SCS as a dependency.

Contributing

All contributions, bug reports, bug fixes, documentation improvements, enhancements, and ideas are welcome.

A detailed overview on how to contribute can be found in the Contributing Guide.

Reporting Issues

Please report any issues you encounter on GitHub.

Citing

You can cite toqito using the following DOI: 10.5281/zenodo.4743211.

If you are using the toqito software package in research work, please include an explicit mention of toqito in your publication. Something along the lines of:

To solve problem "X" we used `toqito`; a package for studying certain aspects of quantum information.

A BibTeX entry that you can use to cite toqito is provided here:

@misc{toqito,
   author       = {Vincent Russo},
   title        = {toqito: A {P}ython toolkit for quantum information, version 1.0.0},
   howpublished = {\url{https://github.com/vprusso/toqito}},
   month        = Mar,
   year         = 2021,
   doi          = {10.5281/zenodo.4743211}
 }