Skip to main content

pyqrack

Downloads Downloads Downloads

Pure Python bindings for the pure C++11/OpenCL Qrack quantum computer simulator library

(PyQrack is just pure Qrack.)

Note: You must also install OpenCL to use this version of Qrack. (There are also CPU-only and CUDA version.)

If you're looking for Mac ARM support, use the package pyqrack, not pyqrack-cpu. Mac officially "deprecated" OpenCL years ago. Hence, accelerator support is not included in ARM-based Mac wheels, and OpenCL installation is not required on these systems, but, if you have a CUDA accelerator on ARM-based Mac, you could try the package pyqrack-cuda instead.

Performance can benefit greatly from following the Qrack repository "Quick Start" and "Power user considerations."

If you use an integrated graphics accelerator, like the Intel HD, setting environment variable PYQRACK_HOST_POINTER_DEFAULT_ON=1 (or to any "truthy" value) will automatically set the default of isHostPointer option of QrackSimulator to True, to engage "zero-copy" mode by default.

Import and instantiate QrackSimulator instances. This simulator can perform arbitrary single qubit and controlled-single-qubit gates, as well as other specific gates like SWAP.

Any 2x2 bit operator matrix is represented by a list of 4 complex floating point numbers, in row-major order.

Single and array "b" parameters represent Pauli operator bases. They are specified according to the enumeration of the Pauli class.

MC[x] and MAC[x] methods are controlled single bit gates, with as many control qubits as you specify via Python list c argument. MCX is multiply-controlled Pauli X, and MACX is "anti-"controlled Pauli X, i.e. "anti-control" activates the gate if all control bits are specifically off, as opposed to on.

To load the required unitaryfund/qrack libraries from a different location, set the PYQRACK_SHARED_LIB_PATH environment variable.

PyQrack has experimental support for PyZX Circuit definitions as an intermediate representation for QrackSimulator. To try this, load a Circuit in PyZX, (use that module to optimize your circuit, as you like,) and create a QrackSimulator() instance using the pyzxCircuit named argument of the constructor, like so:

sim = QrackSimulator(pyzxCircuit=c)

where c is a PyZX circuit object. The circuit will automatically be simulated in the constructed QrackSimulator instance. This also allows loading from QASM and other intermediate representations supported by PyZX.

See https://pyqrack.readthedocs.io/en/latest/ for an API reference.

For custom Qrack build floating-point precision, where options are half, float, double, and quad, set an environment variable via export QRACK_FPPOW=[n] (or as appropriate to your shell) where [n] is the logarithm base 2 of the number of bits in the systemic floating point type (4, 5, 6, or 7, with 5 or float as default, i.e. 2**5=32 for 32-bit float). Your Qrack installation floating-point build option must match this specific value, which might require a custom Qrack build.

Please feel welcome to open an issue, if you'd like help. 😃

Special thanks go to Zeeshan Ahmed, for bug fixes and design suggestions, Ashish Panigrahi, for documentation and design suggestions, WingCode, for documentation, Or Golan, for CI build pipeline tooling, and to the broader community of Qrack contributors, for years of happy Qracking! You rock!

Download files

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

Source Distribution

pyqrack-2.17.3.tar.gz (71.1 kB view details)

Uploaded Source

Built Distributions

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

pyqrack-2.17.3-py313-none-android_16_arm64_v8a.whl (17.1 MB view details)

Uploaded Android API level 16+ ARM64 v8aPython 3.13

pyqrack-2.17.3-py3-none-win_amd64.whl (1.0 MB view details)

Uploaded Python 3Windows x86-64

pyqrack-2.17.3-py3-none-manylinux_2_39_x86_64.whl (3.7 MB view details)

Uploaded Python 3manylinux: glibc 2.39+ x86-64

pyqrack-2.17.3-py3-none-manylinux_2_35_x86_64.whl (3.8 MB view details)

Uploaded Python 3manylinux: glibc 2.35+ x86-64

pyqrack-2.17.3-py3-none-macosx_15_0_x86_64.whl (2.1 MB view details)

Uploaded Python 3macOS 15.0+ x86-64

pyqrack-2.17.3-py3-none-macosx_15_0_arm64.whl (1.9 MB view details)

Uploaded Python 3macOS 15.0+ ARM64

pyqrack-2.17.3-py3-none-macosx_14_0_arm64.whl (2.0 MB view details)

Uploaded Python 3macOS 14.0+ ARM64

File details

Details for the file pyqrack-2.17.3.tar.gz.

File metadata

  • Download URL: pyqrack-2.17.3.tar.gz
  • Upload date:
  • Size: 71.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/7.0.0 CPython/3.14.4

File hashes

Hashes for pyqrack-2.17.3.tar.gz
Algorithm Hash digest
SHA256 5fa2deab6fe6fce6185f2de95d121d908c5d0874775f8dcc9899e9c315c4b908
MD5 8c8534d1d9217ad8db0fc39fafe3e74a
BLAKE2b-256 1863af48d6c5963e877d7bb097fe73c4683b3d608df6c7a29b223592643a2a44

See more details on using hashes here.

File details

Details for the file pyqrack-2.17.3-py313-none-android_16_arm64_v8a.whl.

File metadata

File hashes

Hashes for pyqrack-2.17.3-py313-none-android_16_arm64_v8a.whl
Algorithm Hash digest
SHA256 181c8abc3caa9b4be7129e23dfb7d0a768157abecd560551a45497be34142289
MD5 e075260521dcf62fe4112e37c6887ffc
BLAKE2b-256 25bf68ba728713e08656aae67c079382c6eed9a52fac86cae9eacea41f4cf7e6

See more details on using hashes here.

File details

Details for the file pyqrack-2.17.3-py3-none-win_amd64.whl.

File metadata

  • Download URL: pyqrack-2.17.3-py3-none-win_amd64.whl
  • Upload date:
  • Size: 1.0 MB
  • Tags: Python 3, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/7.0.0 CPython/3.14.4

File hashes

Hashes for pyqrack-2.17.3-py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 86329cd0bbda71f1bc93717e8f3c2df7371cb6755e239342c1297787227ccec6
MD5 6b89c2a9943f6942c06db5c894831dd8
BLAKE2b-256 9e190d1dc38ea1d18b1f5ce1ca4d58fcd7b50daca85b899b248cbde3b6cbb0d1

See more details on using hashes here.

File details

Details for the file pyqrack-2.17.3-py3-none-manylinux_2_39_x86_64.whl.

File metadata

File hashes

Hashes for pyqrack-2.17.3-py3-none-manylinux_2_39_x86_64.whl
Algorithm Hash digest
SHA256 5922803bd39d184e10c4c081e159a8de065fb86fc5b8ea80b9692282df172472
MD5 d8516f34813463ca77cb1d23d7cc1d1c
BLAKE2b-256 b1d9c74022611f37b71d11b481c36c8a753933eb5f353d9f1ee354a8f053f2ea

See more details on using hashes here.

File details

Details for the file pyqrack-2.17.3-py3-none-manylinux_2_35_x86_64.whl.

File metadata

File hashes

Hashes for pyqrack-2.17.3-py3-none-manylinux_2_35_x86_64.whl
Algorithm Hash digest
SHA256 1621bec2770aeba517578e1374255e7116b25495e4b945a6c6217d49082525f5
MD5 6b4761fff650c863f79f7dbc0fa88bc7
BLAKE2b-256 7458c6e420a50c6d0c2ce30d29b8be3dd58f69b9fb72d13c45dbe9d4352e7619

See more details on using hashes here.

File details

Details for the file pyqrack-2.17.3-py3-none-macosx_15_0_x86_64.whl.

File metadata

File hashes

Hashes for pyqrack-2.17.3-py3-none-macosx_15_0_x86_64.whl
Algorithm Hash digest
SHA256 698f70dc3fc7b2413ea72df4a1ef644b0f006fbdf3af770e5a6ce7da87533aba
MD5 39fdeae069a774b34ad8a04bd627dd02
BLAKE2b-256 b70ecad4b2ed442fb7024969c739fdc8ee1fc647803aff460e4e932d48da68cf

See more details on using hashes here.

File details

Details for the file pyqrack-2.17.3-py3-none-macosx_15_0_arm64.whl.

File metadata

File hashes

Hashes for pyqrack-2.17.3-py3-none-macosx_15_0_arm64.whl
Algorithm Hash digest
SHA256 e7de97a7e5df4d3975687cc5002576bf7c7b92c2261c292383fc7bc8a843773d
MD5 811393c6d2c39e74de27f8cbc8c72fd3
BLAKE2b-256 4e34f20d4721cbc1568f6c5fc37bea2f8723e837130e436de6db517790a389e8

See more details on using hashes here.

File details

Details for the file pyqrack-2.17.3-py3-none-macosx_14_0_arm64.whl.

File metadata

File hashes

Hashes for pyqrack-2.17.3-py3-none-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 556a5a4fa0b3ef49389f861fd0ee0a11145ede0050b87e2f0ccf7c8ad012a6c1
MD5 8c2ecb156f86bb5f2fac76ccc38f93f5
BLAKE2b-256 4f7dd93bac7390bc2f555482bd2827400bb17eb3108c445ec9a224396f8f26f0

See more details on using hashes here.

Release history Release notifications | RSS feed

Supported by

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