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.1.tar.gz (71.5 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.1-py313-none-android_16_arm64_v8a.whl (17.0 MB view details)

Uploaded Android API level 16+ ARM64 v8aPython 3.13

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

Uploaded Python 3Windows x86-64

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

Uploaded Python 3manylinux: glibc 2.39+ x86-64

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

Uploaded Python 3manylinux: glibc 2.35+ x86-64

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

Uploaded Python 3macOS 15.0+ x86-64

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

Uploaded Python 3macOS 15.0+ ARM64

pyqrack-2.17.1-py3-none-macosx_14_0_arm64.whl (1.9 MB view details)

Uploaded Python 3macOS 14.0+ ARM64

File details

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

File metadata

  • Download URL: pyqrack-2.17.1.tar.gz
  • Upload date:
  • Size: 71.5 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.1.tar.gz
Algorithm Hash digest
SHA256 26592050153f97e2ab38614d7d6042b2292beacf1f4f7fe63a9e157cf41b795d
MD5 2dde70b7ec07f9f61518a5a394978efd
BLAKE2b-256 01b21840680c12155f53a3cf808ea28b64ed8c9787fd9fcc42f672e482cbf2f5

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyqrack-2.17.1-py313-none-android_16_arm64_v8a.whl
Algorithm Hash digest
SHA256 a81bc03885eaa802062a234c9d0cbf693553e70c123b8be1ce09615668e1c8b0
MD5 d86d4a86b4c511d93b06632c15dd7663
BLAKE2b-256 e56251523a2e6d0a87545be071b9d4c0767df65c9762fabde1fcc5b5ef0e7cce

See more details on using hashes here.

File details

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

File metadata

  • Download URL: pyqrack-2.17.1-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.1-py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 20a1ad1df021f2f26bf5aa70813565287494210094bf1f30f001c283271b7594
MD5 856bc16138654f249ca9bbf029bbc7e3
BLAKE2b-256 d2b407b4c6f580c62b2bc13105218486fe3d8b36ecfe9aff51939769d7c6d7f8

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyqrack-2.17.1-py3-none-manylinux_2_39_x86_64.whl
Algorithm Hash digest
SHA256 e3992bb27c1b9fb4aa3bcbd88219c8cf4bd5b0b264fbc0f2a4f67528578b3971
MD5 96ba44ac4c6ed2631e4748453198f9a0
BLAKE2b-256 b02270c349c75326c99c083ca46b796e363928822423f0dd5f9a38335316fbe4

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyqrack-2.17.1-py3-none-manylinux_2_35_x86_64.whl
Algorithm Hash digest
SHA256 f679b71c48552f482144c706a4d7a21564166b62c1e8def0e14841ca5b3b4680
MD5 8f1f48b3edb9c2ecceb18116efcb77cc
BLAKE2b-256 0866f842986926c8aa8d64b70c4d20d9a15d961ac699ab9a9bcd589d60d91568

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyqrack-2.17.1-py3-none-macosx_15_0_x86_64.whl
Algorithm Hash digest
SHA256 bc6541c2d97ac15152374f717e27ce8f1587018698366f97abaca84bcdf98f88
MD5 848c723a7d1230e53f348cc069e23775
BLAKE2b-256 4c4488646e1905c91b2fa864b8c7558c20d18b1f609bbf3683ed60814a412a67

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyqrack-2.17.1-py3-none-macosx_15_0_arm64.whl
Algorithm Hash digest
SHA256 d99fa68cf276cfc09a7964f0a6a309e55ec5a8c15bdf0d96843f644ede866e2d
MD5 fbf783d3ee3e57ba00092c6544b1aaa2
BLAKE2b-256 0dfca3401ec3ea93e9395b6bee712c02702e1966d9fb55f8683f95294a191ecb

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyqrack-2.17.1-py3-none-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 be9fe8c11f11cfd6721ce2d59b501c4262afea4172d8a07a156c530363676855
MD5 6a78dbc6f30892f8b8ddb9548932a013
BLAKE2b-256 c7e5ca4be6872395bfe1a93e42c632901274de7929fea893489572bc843f0235

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 Pingdom Monitoring Sentry Error logging StatusPage Status page