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.8.0.tar.gz (62.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.8.0-py3-none-win_amd64.whl (998.2 kB view details)

Uploaded Python 3Windows x86-64

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

Uploaded Python 3manylinux: glibc 2.39+ x86-64

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

Uploaded Python 3manylinux: glibc 2.35+ x86-64

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

Uploaded Python 3macOS 15.0+ x86-64

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

Uploaded Python 3macOS 15.0+ ARM64

pyqrack-2.8.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.8.0.tar.gz.

File metadata

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

File hashes

Hashes for pyqrack-2.8.0.tar.gz
Algorithm Hash digest
SHA256 b48e8adfbd7ebd7c3422245d868c6126cec3c6296707918d166725466ad1e382
MD5 f363ee6e20762e79060cb0445a60ef06
BLAKE2b-256 e5d52582d4a6f2bd81b3d3dd3be3f52814f2953c8b2d6510b4751026b9dab8de

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for pyqrack-2.8.0-py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 e88024fce8b5cc96c55a5a8ff6e1ca5a513f222a8cadf55ce60213a9be98970a
MD5 8d7348f41f21c8b74ea4dc5be59b5648
BLAKE2b-256 9b51947e90e0f05db6436decd39de4be0ed9878d759f82d071d56681991484f9

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyqrack-2.8.0-py3-none-manylinux_2_39_x86_64.whl
Algorithm Hash digest
SHA256 5ce57d04c707f755ac6ddb33a7924fc5caa5b8bd2145c195d8d490d5cce15517
MD5 ad9b71672a1628ba89c99adc4f104089
BLAKE2b-256 f5b86f88f3eee9918c41de9060c2f1885b05ca24b34f72e3595948e37ba86c43

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyqrack-2.8.0-py3-none-manylinux_2_35_x86_64.whl
Algorithm Hash digest
SHA256 9e1b37b1fd77a3dc84faab5db96038b27734ac08ae8f9c69c3d4cd7783c66ac4
MD5 2feb38cd04faa7a775e5067139ed7270
BLAKE2b-256 ccfe37c967f9d54a544c42cc3b675d697d54082d4c82ca91d37fb3584cd15032

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyqrack-2.8.0-py3-none-macosx_15_0_x86_64.whl
Algorithm Hash digest
SHA256 eeef7a166d4e8ddb03a313ae691449c7bfb1cb603a65b58336383e212c1f6898
MD5 f570017c4bd747855ab56a4c9040a2ee
BLAKE2b-256 af48e2dc3fc65671e310a1cbf3edfb751cf871109dc80eb7a32f97f4dc7d4adf

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyqrack-2.8.0-py3-none-macosx_15_0_arm64.whl
Algorithm Hash digest
SHA256 0a6d8735de5e0469c48a4a5f969eee3f8bbc97dfd8018335f14bd7b8a2d17f76
MD5 1d66dc5a368c0ffc9e57165e999039d1
BLAKE2b-256 8fe1f9a37bbfca765bac6a9d26548f276604ff7e5ff49c2eebc2ac7cbf4997d9

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyqrack-2.8.0-py3-none-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 b6bb274720dcffe4253dfab44a9d08917eef5f72570a0ffe17cdeb9d0abd9b38
MD5 1c712a171d206957d264e48368900554
BLAKE2b-256 75f215bcd33739dd0a1d9b277e0de04930ccc76d50be12cf20a5cadc451c08f8

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