Skip to main content

A quantum computing library for the rest of us

Project description

Qublets

Qublets is an approachable Quantum Computing Library written in Python using Intel's intel-qs Quantum Computing Simulator. The goal of the library is to make introductory quantum computing approachable at the undergraduate (or lower) level.

Setup

If you are on Unix, the easiest way to start using qublets is by installing the pre-compiled pip module:

pip install qublets

If you don't have pip installed, it takes 30 seconds and it will make your life managing Python deps much easier:

cd ~
curl https://bootstrap.pypa.io/get-pip.py > get-pip.py
python3 get-pip.py

If you are not on Unix or don't want to install pip, you can always build from source

Getting Started

Qublets makes it easy to run simple quantum examples. Consider the classic "Superposition qubit" case:

from qublets import QUInt

result = QUInt.zeros(1).hadamard().measure()
print(result)

As you can see, Qublets aims to be as readable as possible (although you can customize quite a bit later). Running the code above will yield a 1 50% of the cases and a 0 the rest. That's it. You may also notice (most) Qublets operators are chainable and will return the object they operated on - this makes building circuits a breeze.

If you're familiar with quantum state names, you can make the above example even shorter by using a |+〉state:

from qublets import QUInt

result = QUInt.pluses(1).measure()
print(result)

You may have noticed Qublets supports integers natively - in fact, it supports both unsigned and signed integers of any given size (that your computer can work with without combusting in flames). The example above easily generalizes to a 4-bit QInt:

from qublets import QInt

result = QInt.pluses(4).measure()
print(result)

Now, you'd instead get a (mostly) uniformly random number between -8 and 7.

It wouldn't really be a quantum computing library if we didn't entangle some bits so let's do that quickly:

from qublets import QUInt

q1 = QUInt.zeros(2)
q1[0].hadamard()
q1[1].c_negate(on=q1[0])
print(q1.measure())

# Or, just like before, we can use a shortcut
print(QUInt.fully_entangled(2).measure())

If you're familiar with quantum computing's ABCs, you'd likely be happy to see only 0 and 3 as the possible values of the measurements. That's because the classic had/cnot combo will give us a perfect |Φ+〉state (a bell pair) to work with. fully_entangled, on the other hand, will always entangle all the bits in a QInt using a chain of cnots - which would be equivalent for only 2 bits.

Qublets also supports cross-q(u)int operations, built-in primitives, batch runs for your circuits, extracting probability amplitudes and more - you can find some inspirational samples in docs/examples/

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

qublets-0.1.3.tar.gz (180.7 kB view details)

Uploaded Source

Built Distributions

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

qublets-0.1.3-cp310-cp310-manylinux_2_24_x86_64.whl (1.1 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.24+ x86-64

qublets-0.1.3-cp39-cp39-manylinux_2_24_x86_64.whl (1.1 MB view details)

Uploaded CPython 3.9manylinux: glibc 2.24+ x86-64

qublets-0.1.3-cp38-cp38-manylinux_2_24_x86_64.whl (1.1 MB view details)

Uploaded CPython 3.8manylinux: glibc 2.24+ x86-64

qublets-0.1.3-cp37-cp37m-manylinux_2_24_x86_64.whl (1.1 MB view details)

Uploaded CPython 3.7mmanylinux: glibc 2.24+ x86-64

qublets-0.1.3-cp36-cp36m-manylinux_2_24_x86_64.whl (1.1 MB view details)

Uploaded CPython 3.6mmanylinux: glibc 2.24+ x86-64

File details

Details for the file qublets-0.1.3.tar.gz.

File metadata

  • Download URL: qublets-0.1.3.tar.gz
  • Upload date:
  • Size: 180.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.8.0 pkginfo/1.8.2 readme-renderer/34.0 requests/2.27.1 requests-toolbelt/0.9.1 urllib3/1.26.9 tqdm/4.63.0 importlib-metadata/4.11.3 keyring/23.5.0 rfc3986/2.0.0 colorama/0.4.4 CPython/3.10.2

File hashes

Hashes for qublets-0.1.3.tar.gz
Algorithm Hash digest
SHA256 b50299ed57c4c28cf63f9bfabe96bddd5e7ddc6fd7476bb86db3aa1a52309f03
MD5 562c7e327f80302fbceb15a7262f1111
BLAKE2b-256 9b3baa667e4e13a8f52ec6366101678357a20506a3a80d25a667b39ece65d158

See more details on using hashes here.

File details

Details for the file qublets-0.1.3-cp310-cp310-manylinux_2_24_x86_64.whl.

File metadata

  • Download URL: qublets-0.1.3-cp310-cp310-manylinux_2_24_x86_64.whl
  • Upload date:
  • Size: 1.1 MB
  • Tags: CPython 3.10, manylinux: glibc 2.24+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.8.0 pkginfo/1.8.2 readme-renderer/34.0 requests/2.27.1 requests-toolbelt/0.9.1 urllib3/1.26.9 tqdm/4.63.0 importlib-metadata/4.11.3 keyring/23.5.0 rfc3986/2.0.0 colorama/0.4.4 CPython/3.10.2

File hashes

Hashes for qublets-0.1.3-cp310-cp310-manylinux_2_24_x86_64.whl
Algorithm Hash digest
SHA256 7fb00febb72604acae8bed88e3362f93c8e8331e3598f9e7e336b533166966ac
MD5 e972d48e4ad7f75bb24e2cbab1a09bff
BLAKE2b-256 3a80dfc550bd09d7ea53c5280c4910701bd57ad56e1e6cb2b5fb2df10f9ab8c3

See more details on using hashes here.

File details

Details for the file qublets-0.1.3-cp39-cp39-manylinux_2_24_x86_64.whl.

File metadata

  • Download URL: qublets-0.1.3-cp39-cp39-manylinux_2_24_x86_64.whl
  • Upload date:
  • Size: 1.1 MB
  • Tags: CPython 3.9, manylinux: glibc 2.24+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.8.0 pkginfo/1.8.2 readme-renderer/34.0 requests/2.27.1 requests-toolbelt/0.9.1 urllib3/1.26.9 tqdm/4.63.0 importlib-metadata/4.11.3 keyring/23.5.0 rfc3986/2.0.0 colorama/0.4.4 CPython/3.10.2

File hashes

Hashes for qublets-0.1.3-cp39-cp39-manylinux_2_24_x86_64.whl
Algorithm Hash digest
SHA256 1db4d059a6d0016360ecca300e1ae9cf3b512a3246a0d10b60145aac21bbcc0e
MD5 8c0256569f970223fb84eaf900283a21
BLAKE2b-256 b0a1d17f5ea54424642a311a99cbb2d9689243d9b693bd785dcac3a1ee32ce02

See more details on using hashes here.

File details

Details for the file qublets-0.1.3-cp38-cp38-manylinux_2_24_x86_64.whl.

File metadata

  • Download URL: qublets-0.1.3-cp38-cp38-manylinux_2_24_x86_64.whl
  • Upload date:
  • Size: 1.1 MB
  • Tags: CPython 3.8, manylinux: glibc 2.24+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.8.0 pkginfo/1.8.2 readme-renderer/34.0 requests/2.27.1 requests-toolbelt/0.9.1 urllib3/1.26.9 tqdm/4.63.0 importlib-metadata/4.11.3 keyring/23.5.0 rfc3986/2.0.0 colorama/0.4.4 CPython/3.10.2

File hashes

Hashes for qublets-0.1.3-cp38-cp38-manylinux_2_24_x86_64.whl
Algorithm Hash digest
SHA256 ca3b6ee8f8d55e0e30ccb496162a12d8b6e88ff6fd2b5cf0256050c2e6786701
MD5 761bd9002dd5848e6ea39ac0854b0559
BLAKE2b-256 b51920061575367d95d0dd0a847094756d03912ebac6f46a068c4dc678e39212

See more details on using hashes here.

File details

Details for the file qublets-0.1.3-cp37-cp37m-manylinux_2_24_x86_64.whl.

File metadata

  • Download URL: qublets-0.1.3-cp37-cp37m-manylinux_2_24_x86_64.whl
  • Upload date:
  • Size: 1.1 MB
  • Tags: CPython 3.7m, manylinux: glibc 2.24+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.8.0 pkginfo/1.8.2 readme-renderer/34.0 requests/2.27.1 requests-toolbelt/0.9.1 urllib3/1.26.9 tqdm/4.63.0 importlib-metadata/4.11.3 keyring/23.5.0 rfc3986/2.0.0 colorama/0.4.4 CPython/3.10.2

File hashes

Hashes for qublets-0.1.3-cp37-cp37m-manylinux_2_24_x86_64.whl
Algorithm Hash digest
SHA256 15e0afc4cdfb43a6df41ae1bfd01ea48ff4e385c700ae4e909b2b454232af6f6
MD5 efdac16661904b675dd5af9cad462591
BLAKE2b-256 7285e284a7bfaba6a837d15c5cbe75c70b8bad565021cfd7568da289508a7cf9

See more details on using hashes here.

File details

Details for the file qublets-0.1.3-cp36-cp36m-manylinux_2_24_x86_64.whl.

File metadata

  • Download URL: qublets-0.1.3-cp36-cp36m-manylinux_2_24_x86_64.whl
  • Upload date:
  • Size: 1.1 MB
  • Tags: CPython 3.6m, manylinux: glibc 2.24+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.8.0 pkginfo/1.8.2 readme-renderer/34.0 requests/2.27.1 requests-toolbelt/0.9.1 urllib3/1.26.9 tqdm/4.63.0 importlib-metadata/4.11.3 keyring/23.5.0 rfc3986/2.0.0 colorama/0.4.4 CPython/3.10.2

File hashes

Hashes for qublets-0.1.3-cp36-cp36m-manylinux_2_24_x86_64.whl
Algorithm Hash digest
SHA256 7ae84a28574b9db2bcc5e912f9e74bbfe7b98283d238a72bd648121230708bd3
MD5 e655e4c5487f31c8a046694f34878ffd
BLAKE2b-256 dfa21732ba907f55114fb37dbed3074ec412fcf63a801f5d6a2e25ef9dd224d7

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