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!

Metadata

Release files for pyqrack 2.29.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for pyqrack 2.29.2
File Size Uploaded Provenance
pyqrack-2.29.2.tar.gz 85.1 kB Without provenance Details

Built distributions (wheels)

Table of built distributions (wheels) for pyqrack 2.29.2
File
pyqrack-2.29.2-py313-none-android_16_arm64_v8a.whl Python 3.13 none Android API level 16+ ARM64 v8a Details
pyqrack-2.29.2-py3-none-win_amd64.whl Python 3 none Windows x86-64 Details
pyqrack-2.29.2-py3-none-manylinux_2_39_x86_64.whl Python 3 none Linux glibc 2.39+ x86-64 Details
pyqrack-2.29.2-py3-none-manylinux_2_35_x86_64.whl Python 3 none Linux glibc 2.35+ x86-64 Details
pyqrack-2.29.2-py3-none-macosx_15_0_x86_64.whl Python 3 none macOS 15.0+ x86-64 Details
pyqrack-2.29.2-py3-none-macosx_15_0_arm64.whl Python 3 none macOS 15.0+ ARM64 Details
pyqrack-2.29.2-py3-none-macosx_14_0_arm64.whl Python 3 none macOS 14.0+ ARM64 Details

Total release size: 36.8 MB

Release files / pyqrack-2.29.2.tar.gz

Download URL pyqrack-2.29.2.tar.gz
Size 85.1 kB
Tags Source
SHA-256 checksum
How to use checksums
a527ea253f7a70156db62ff909f7fb0d3db7e075e6fc04b522f7c58afc6f4067
BLAKE2b-256 checksum
How to use checksums
12c06d236f6ea56105c9c5faa69ce1a3fe15bed68b3dcfc386d1688cad9228d0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.4

Release files / pyqrack-2.29.2-py313-none-android_16_arm64_v8a.whl

Download URL pyqrack-2.29.2-py313-none-android_16_arm64_v8a.whl
Size 22.3 MB
Tags Android API level 16+ ARM64 v8a Python 3.13
SHA-256 checksum
How to use checksums
4fc7adba0b7481ac2b59f0f8c23522a1febd8e7b961a63d8e2c16089375c010f
BLAKE2b-256 checksum
How to use checksums
434bbf5100579634b68ab27ca256927ade803ca7e89fde5e9595e29b43639091
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.4

Release files / pyqrack-2.29.2-py3-none-win_amd64.whl

Download URL pyqrack-2.29.2-py3-none-win_amd64.whl
Size 1.0 MB
Tags Python 3 Windows x86-64
SHA-256 checksum
How to use checksums
33ac105f40a0affa4b8dfa147cf3b3808506f90714bace18d0f6c13420d4dd02
BLAKE2b-256 checksum
How to use checksums
d8a0737efae7180b4bf1a5f8d23fb6415e6ba3583ad4cbb1dedf88afbc9eb0cb
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.4

Release files / pyqrack-2.29.2-py3-none-manylinux_2_39_x86_64.whl

Download URL pyqrack-2.29.2-py3-none-manylinux_2_39_x86_64.whl
Size 3.7 MB
Tags Linux glibc 2.39+ x86-64 Python 3
SHA-256 checksum
How to use checksums
e02b1593641b9b2001871007a09dd8ec49ff133aef36ad2abf03466c04625cf5
BLAKE2b-256 checksum
How to use checksums
9df512114e8d102ed30021c06c8ca9c7e78c32f4898fd659a5dbf6d75c54a916
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.4

Release files / pyqrack-2.29.2-py3-none-manylinux_2_35_x86_64.whl

Download URL pyqrack-2.29.2-py3-none-manylinux_2_35_x86_64.whl
Size 3.7 MB
Tags Linux glibc 2.35+ x86-64 Python 3
SHA-256 checksum
How to use checksums
659966e3e0eb185917cbb231ebac2910a9124d33efdf2750702766e03150cfe7
BLAKE2b-256 checksum
How to use checksums
4106249ebacc4fd1105f0d31b229a200f16524b01c9cb6168afa1cf7fdf3d47b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.4

Release files / pyqrack-2.29.2-py3-none-macosx_15_0_x86_64.whl

Download URL pyqrack-2.29.2-py3-none-macosx_15_0_x86_64.whl
Size 2.1 MB
Tags Python 3 macOS 15.0+ x86-64
SHA-256 checksum
How to use checksums
d34113c24e7ce654b8f7b468e4705e4ffd02bf2fe2a14153aeefd938d50ca1a8
BLAKE2b-256 checksum
How to use checksums
23a009d2c7b4e94b50570de60bdff723162298c14bee5947e4d621c6f9480bba
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.4

Release files / pyqrack-2.29.2-py3-none-macosx_15_0_arm64.whl

Download URL pyqrack-2.29.2-py3-none-macosx_15_0_arm64.whl
Size 1.9 MB
Tags Python 3 macOS 15.0+ ARM64
SHA-256 checksum
How to use checksums
5a1884077bd11352535d14f6e4ba63b1985ff8b1537190b2a932c94342620329
BLAKE2b-256 checksum
How to use checksums
a4888ae4a7b652d9e98a46bfeabb3108e6975ce2b172ce6fe7e21f97b8a9dc4f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.4

Release files / pyqrack-2.29.2-py3-none-macosx_14_0_arm64.whl

Download URL pyqrack-2.29.2-py3-none-macosx_14_0_arm64.whl
Size 2.0 MB
Tags Python 3 macOS 14.0+ ARM64
SHA-256 checksum
How to use checksums
67368497090e720053050c4ca976d44746272457bb98d145f507a5f93ea07d8a
BLAKE2b-256 checksum
How to use checksums
3d9823f38d056d31338142e00871a1cf37922a9b6eb178aa8e05ca2bf8e85dca
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.4

Security for pyqrack 2.29.2

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

Release history Release notifications | RSS feed

This release

2.29.2 This release

8 release files No provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page