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

Uploaded Android API level 16+ ARM64 v8aPython 3.13

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

Uploaded Python 3Windows x86-64

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

Uploaded Python 3manylinux: glibc 2.39+ x86-64

pyqrack-2.15.0-py3-none-manylinux_2_35_x86_64.whl (3.7 MB view details)

Uploaded Python 3manylinux: glibc 2.35+ x86-64

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

Uploaded Python 3macOS 15.0+ x86-64

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

Uploaded Python 3macOS 15.0+ ARM64

pyqrack-2.15.0-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.15.0.tar.gz.

File metadata

  • Download URL: pyqrack-2.15.0.tar.gz
  • Upload date:
  • Size: 67.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.15

File hashes

Hashes for pyqrack-2.15.0.tar.gz
Algorithm Hash digest
SHA256 6c6fb6725cb68b7ce608764f9eee1f64dff9b6981f198ead927a40bff4357d89
MD5 693167e210af37e62b374d84aa287590
BLAKE2b-256 fe5630bca317c96a1d1873960f4b8fc7f6e6ccc71591c585aac77d0bba2b907c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyqrack-2.15.0-py313-none-android_16_arm64_v8a.whl
Algorithm Hash digest
SHA256 7f029e4ec7874804db7b5d6532c59b99183691833865f8d22ebad698e8323b1e
MD5 34856c133b61652f3f6c0394d1b14e02
BLAKE2b-256 21835dc8353a694d187a5885972f7dd5d9e375495f9b9ef12a70537d7e4f5fcd

See more details on using hashes here.

File details

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

File metadata

  • Download URL: pyqrack-2.15.0-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/6.2.0 CPython/3.11.15

File hashes

Hashes for pyqrack-2.15.0-py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 a4210686b5fc35bc5b04b1eeb6d7ca467a3db6b6da19ffe288437e178ea6325c
MD5 bfee6247f107e1544611c621f5c653db
BLAKE2b-256 c3b40bf9dcb877ec3c3fe8aefbabf8c4a665edd987c319462a9a37c92f2bace6

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyqrack-2.15.0-py3-none-manylinux_2_39_x86_64.whl
Algorithm Hash digest
SHA256 eef9990455ed2f3983184b3c65400f47477fbf85cb8f92a5deaaedb5c6071947
MD5 53c484300d83906f3039df9e8ef41870
BLAKE2b-256 a2e999350b448fb9fe90651134c45ef73de9cb2423deb25a0c5ecec8abeb2d0d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyqrack-2.15.0-py3-none-manylinux_2_35_x86_64.whl
Algorithm Hash digest
SHA256 d3e75d3cc893fdc218b2091505bfcde9076a5ae00885a226360dd7046e60a4ae
MD5 e4c26722e9ce5f530bcd5055cdc12957
BLAKE2b-256 f57a98e3371c92e9b09a85518ad48dd86d8dc836b22e6f1840f294b00d9c37c1

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyqrack-2.15.0-py3-none-macosx_15_0_x86_64.whl
Algorithm Hash digest
SHA256 5d867b77d0096c90619da86c4e2e98678dcff1e65bc2d05491f36e89cc0dcded
MD5 9e9d939ec01cd794d2927176f865778f
BLAKE2b-256 3cbf26f59e697002ee9279c22c952e0e94ea53c83ee5e1aef1c6f258f7540cab

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyqrack-2.15.0-py3-none-macosx_15_0_arm64.whl
Algorithm Hash digest
SHA256 a6e8fdc29695fdb87891d875ab4f4eb25876e8086cb34cd512d05afcb0b64fbe
MD5 751577d7f1c9c2ae1db953f34104785b
BLAKE2b-256 e6c67abe1fada4b521cc2102345baeb2b108e55dc2c7653bf93fbcf49c141003

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyqrack-2.15.0-py3-none-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 3b8ba93f989aba248499ff2735a7c66e4931a29fbe92e4814e5788639d6799c3
MD5 d121701867b85471c79e04cb93bcbd7d
BLAKE2b-256 7b121fa8c089aab8a2ed31cdd3067aea6b68df5004e25bd650a138f4ef4dda7c

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