Skip to main content

Python tools for reading, writing, compiling, simulating quantum computer circuits.

Project description

Qubiter at GitHub

Tutorial

The following Jupyter notebook is a good introduction to Qubiter's basic features. Other notebooks in Qubiter's jupyter notebook folder discuss more advanced features:

Installation

The simplest thing that avoids many of the installation hassles is to get an account on our Amazon cloud service www.bayesforge.com. It's free for one year. Bayesforge already has all of Python and Qubiter installed (although you may need to update Qubiter using Git). Bayesforge is also available on the Tencent cloud.

Of course, you can also clone the latest version or update an older version of Qubiter on your computer from this repo by using Git commands.

Alternatively, you can install an older but more stable version of Qubiter from the Python package manager pip using:

pip install qubiter --user

If you are using a Jupyter notebook, use:

!pip install qubiter --user

and restart the kernel.

What is Qubiter?

The Qubiter project aims to provide eventually a full suite of tools, written mostly in Python, for designing and simulating quantum circuits on classical computers. (So it will address only the needs of gate model, not annealer, quantum computer engineers). We or others could start a similar project for annealers.

An earlier C++ computer program also called Qubiter (see http://www.ar-tiste.com/qubiter.html), written by Robert R. Tucci, did only quantum compiling. This newer project includes a quantum CSD compiler similar to the earlier Qubiter, based on the (Cosine-Sine) CS Decompostion of Linear Algebra, but written in Python. But this new project also includes much more than that.

We've included classes for reading and writing quantum circuit files. Also for expanding circuits with gates that have multiple controls into circuits with only CNOTs and single qubit rotation gates. Also for embedding a circuit inside a larger one. And, last but not least, we've included a simulator.

The simulator hasn't been bench-marked but should be pretty fast, because it relies on Numpy, which is a Python wrapper for C code.

Besides being amply documented with docstrings, each class has a main method at the end giving examples of its usage (and testing it). Plus we've included a large and ever increasing collection of Jupyter notebooks that teach some physics and how to use Qubiter at the same time.

The quantum circuits are saved as text files, which allows easy exchange between QC engineers.

The quantum circuits are draw in ASCII (not in postscript or in a proprietary format). We hope we can convince you that ASCII drawings of quantum circuits are surprisingly clear, expressive, and convenient, really all you need, plus, unlike other formats, they are super easy to edit. Using other formats might require you to master difficult subjects like postscript in order to write/edit circuit files. This is totally unnecessary!

Quantum Fog at GitHub (see https://github.com/artiste-qb-net/quantum-fog) is a twin project started by the same people. We hope that eventually Quantum Fog will call Qubiter to perform some tasks, like quantum compiling and simulating.

All of Qubiter at GitHub except for the contents of the quantum_CSD_compiler folder is licensed under the BSD license (3 clause version) with an added clause at the end, taken almost verbatim from the Apache 2.0 license, granting additional Patent rights. See LICENSE.md.

The contents of Qubiter's quantum_CSD_compiler folder are licensed under the GPLv2 (Linux) license.

Contributors

(Alphabetical Order)

  • Dekant, Henning
  • Tregillus, Henry
  • Tucci, Robert
  • Yin, Tao

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

qubiter-1.0.1.tar.gz (833.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

qubiter-1.0.1-py3-none-any.whl (960.4 kB view details)

Uploaded Python 3

File details

Details for the file qubiter-1.0.1.tar.gz.

File metadata

  • Download URL: qubiter-1.0.1.tar.gz
  • Upload date:
  • Size: 833.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.13.0 pkginfo/1.4.2 requests/2.20.0 setuptools/41.0.1 requests-toolbelt/0.8.0 tqdm/4.28.1 CPython/3.5.2

File hashes

Hashes for qubiter-1.0.1.tar.gz
Algorithm Hash digest
SHA256 bc934f63e94edd567cf3fc0a021bd5164804b3bd54cf51708c57befc599cc0bf
MD5 c3c556e0fa9a3ba1fbfba8b1956e85a0
BLAKE2b-256 fcd6246dda17900506b36cf37b2c14582b0488a6a0a260a621fbdd2cf21d2398

See more details on using hashes here.

File details

Details for the file qubiter-1.0.1-py3-none-any.whl.

File metadata

  • Download URL: qubiter-1.0.1-py3-none-any.whl
  • Upload date:
  • Size: 960.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.13.0 pkginfo/1.4.2 requests/2.20.0 setuptools/41.0.1 requests-toolbelt/0.8.0 tqdm/4.28.1 CPython/3.5.2

File hashes

Hashes for qubiter-1.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 24c69fb9b8f87fc9f8e3771b8bc3e2e364da31cc692707b0ee27711ea54a129d
MD5 e0d0bc6bdaf2387fac39c3382a0597e9
BLAKE2b-256 a781a595d998c291eb010889577d73ae60b3f84bb73807e803a2b0ac63dacfbe

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page