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.13.1.tar.gz (67.2 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.13.1-py3-none-win_amd64.whl (1.0 MB view details)

Uploaded Python 3Windows x86-64

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

Uploaded Python 3manylinux: glibc 2.39+ x86-64

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

Uploaded Python 3manylinux: glibc 2.35+ x86-64

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

Uploaded Python 3macOS 15.0+ x86-64

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

Uploaded Python 3macOS 15.0+ ARM64

pyqrack-2.13.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.13.1.tar.gz.

File metadata

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

File hashes

Hashes for pyqrack-2.13.1.tar.gz
Algorithm Hash digest
SHA256 d08494978f02d75498d0027530717315cf3e1013fab0799258e1ab438de161be
MD5 cbef32ac8ae001eb48f4ae42971edd7c
BLAKE2b-256 49ff8b66020fc32b491692adbed3849d9d2d132710da3f1378fd57541699e663

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for pyqrack-2.13.1-py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 d6aa83d6440120b6cfebb2ace52d59cd3a517aeb2b59e8fc8d8b97e6e034b946
MD5 463f00d13945b197ef2741743776dfa1
BLAKE2b-256 47e2dc77c08ded63bdeb70bb1bde1e8487ad23fa4c870e733148608a721f941c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyqrack-2.13.1-py3-none-manylinux_2_39_x86_64.whl
Algorithm Hash digest
SHA256 2a6528a6dc48a149a3de1f1656e940927e239dce641c664fe745493d7a5138c1
MD5 1ea6854089a65feb7b56ca70ecbd9725
BLAKE2b-256 01d93a4d6a4a9074402a986aaa1bf0175c8bbafb274b8c7e06bf350a41522b09

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyqrack-2.13.1-py3-none-manylinux_2_35_x86_64.whl
Algorithm Hash digest
SHA256 463ebe3605a9ab7317beaeac19513ed863f49a1274e846f2da5cc74f80d6c15f
MD5 ceff85762e65bc12b9770ca60d878762
BLAKE2b-256 8b89f5be794186aac4180c9d8ee1e633429db61b1ce9b42c2e50c25bba5b234d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyqrack-2.13.1-py3-none-macosx_15_0_x86_64.whl
Algorithm Hash digest
SHA256 c4e80aded760124ff7ed4b5d35a8df345f510cf66d09845e4679f135317e0ecd
MD5 30e2d42ccc896b2b37875f7086deaaec
BLAKE2b-256 dd6fb1dc55ea5a38c7f79b881fa130b63a00ee6b77a1ada89b63a37d879e25c3

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyqrack-2.13.1-py3-none-macosx_15_0_arm64.whl
Algorithm Hash digest
SHA256 a5a8896e720e04c8205ad59166e88934f7bf3466d35bccd3a6933dc5df31987c
MD5 6cc9917e42c7e428f93e71627568b18e
BLAKE2b-256 8a04de22d7a181465ab813b41a34b5ab686eaa78177ef3acfeb443962aa9069c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyqrack-2.13.1-py3-none-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 48c60c31156efe4e95178aae68419c13a6ae88be1006feed3860efa310837059
MD5 812d7ff17b889cd619650aaca8d57bc9
BLAKE2b-256 8f4aec93ad67781967a6520d3042a36f3920983e216093662453fd37be08b845

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