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.14.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.14.0-py313-none-android_16_arm64_v8a.whl (17.0 MB view details)

Uploaded Android API level 16+ ARM64 v8aPython 3.13

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

Uploaded Python 3Windows x86-64

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

Uploaded Python 3manylinux: glibc 2.39+ x86-64

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

Uploaded Python 3manylinux: glibc 2.35+ x86-64

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

Uploaded Python 3macOS 15.0+ x86-64

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

Uploaded Python 3macOS 15.0+ ARM64

pyqrack-2.14.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.14.0.tar.gz.

File metadata

  • Download URL: pyqrack-2.14.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.14.0.tar.gz
Algorithm Hash digest
SHA256 74d66f52567ab7b2f8307a1e3d120f5390e942b7a74570ab67850992e2c70d99
MD5 09e12f59da1f469a5ac3d771500f4165
BLAKE2b-256 e8a76c5b434c6c18749f6c087d082f59f882d8ee2cff5b21fdf4234e2cb228bc

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyqrack-2.14.0-py313-none-android_16_arm64_v8a.whl
Algorithm Hash digest
SHA256 3c85f2a971a9bc199d0a705f09c72b1e047a456dc0e47540e8c9573c718d5da0
MD5 f6a4c0bbbdbdf4a27a1e5068db70263b
BLAKE2b-256 d43d91e985398a0232e34db3256383a52f568ccbb30c1f88389c497da7ab811a

See more details on using hashes here.

File details

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

File metadata

  • Download URL: pyqrack-2.14.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.14.0-py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 3eac5dc1edad074420ed83e7bf7371ea58ba914bf1ed1c8236a722bee2e00b59
MD5 14f38f0a6667b12e48d777b4e6f99661
BLAKE2b-256 87b83937f885b810958d2cf02f2c0c035a100c98a3c3b0116358f228a26274e5

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyqrack-2.14.0-py3-none-manylinux_2_39_x86_64.whl
Algorithm Hash digest
SHA256 82937f8d1e0fb1ef7e20d09842e730c9eab5c5d83dba37e4dc129adb2af1b2c3
MD5 153a7f614afc8bf7c7da15e8a255a23c
BLAKE2b-256 7c578ab9446681f59e0080de16d8c526568701a24b4d891ce6cc381416efc6a4

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyqrack-2.14.0-py3-none-manylinux_2_35_x86_64.whl
Algorithm Hash digest
SHA256 f719f81c743fd95ec27c5ba0367ac6e44c34cb0aab6fe442a8f36bf130da039b
MD5 987dd6f4fff6ce332890f062a1018933
BLAKE2b-256 0e9b0990d025240da197ff2e4c1e50920bfab386261c6bd37e348d6496c2b235

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyqrack-2.14.0-py3-none-macosx_15_0_x86_64.whl
Algorithm Hash digest
SHA256 c11527af5ee6ebf0098809d8737d41f6bda8102c1e8477eb121ef758085cdf10
MD5 7816ad3753a01e71de110e78d08b4444
BLAKE2b-256 49f28a7cab701a1a2a11be1290a2a8a36e2fe5eff53ba755376bfe0e3a61ec6f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyqrack-2.14.0-py3-none-macosx_15_0_arm64.whl
Algorithm Hash digest
SHA256 8ce1d203cd48519b118e105cf17ffbf2e0440bb4b4f6becde3133b6b5db8a33c
MD5 216d836b50fa78153dbe4e4568788b34
BLAKE2b-256 5bf9506d6440c7f40969cded17d9ae6233f397659e777d3fec5ed8bbd9f2736a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyqrack-2.14.0-py3-none-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 db5ff95e5195fd90973dd273c6510ef6ac4a5317f4ef278c61986781a97b5236
MD5 e530e2d5327c0ddfcb97f06b32fb2479
BLAKE2b-256 1d875d8571d6a7a2e6ec24fe0252858c92c9e222691075b19c0698287482e031

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