Skip to main content

pyqrack

Downloads Downloads Downloads

Pure Python bindings for the pure C++11 Qrack quantum computer simulator library

(PyQrack is just pure Qrack.)

This is the purely CPU-based variant of PyQrack (with module name pyqrack-cpu). This alternate build of PyQrack is provided so that systems that won't use OpenCL or CUDA anyway (such as because they lack any GPUs or other accelerators like the Intel HD) do not need to install the OpenCL library in order to use PyQrack. In this form, both the PyQrack module and the underlying C++ Qrack library are entirely external dependency-free.

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."

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_cpu-2.17.3.tar.gz (71.5 kB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

pyqrack_cpu-2.17.3-py3-none-win_amd64.whl (831.8 kB view details)

Uploaded Python 3Windows x86-64

pyqrack_cpu-2.17.3-py3-none-manylinux_2_39_x86_64.whl (3.1 MB view details)

Uploaded Python 3manylinux: glibc 2.39+ x86-64

pyqrack_cpu-2.17.3-py3-none-manylinux_2_35_x86_64.whl (3.1 MB view details)

Uploaded Python 3manylinux: glibc 2.35+ x86-64

pyqrack_cpu-2.17.3-py3-none-macosx_15_0_x86_64.whl (2.1 MB view details)

Uploaded Python 3macOS 15.0+ x86-64

pyqrack_cpu-2.17.3-py3-none-macosx_15_0_arm64.whl (1.9 MB view details)

Uploaded Python 3macOS 15.0+ ARM64

pyqrack_cpu-2.17.3-py3-none-macosx_14_0_arm64.whl (2.0 MB view details)

Uploaded Python 3macOS 14.0+ ARM64

File details

Details for the file pyqrack_cpu-2.17.3.tar.gz.

File metadata

  • Download URL: pyqrack_cpu-2.17.3.tar.gz
  • Upload date:
  • Size: 71.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/7.0.0 CPython/3.14.4

File hashes

Hashes for pyqrack_cpu-2.17.3.tar.gz
Algorithm Hash digest
SHA256 e9bc324e9dc5875c48cafde340bbbc318c5c67be10dcade9e4ab0d107df5b2b4
MD5 0c993b123d2e36a8ad82a9022e9de7c9
BLAKE2b-256 5a746730400bbcbcf40302318e64e4ccd2eff0a07d8f2de1ae6fdb2a09ede7d5

See more details on using hashes here.

File details

Details for the file pyqrack_cpu-2.17.3-py3-none-win_amd64.whl.

File metadata

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

File hashes

Hashes for pyqrack_cpu-2.17.3-py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 44a6ba8372a33345d08f4102550775c3b6bf308af7ece13ff6bfb5974b6d4dab
MD5 295386692900a0d2d39ba22bd6944a95
BLAKE2b-256 cf60e151d4f995cb1f2a6b434b9bca7291721fa31d551e926e12f26b81c99249

See more details on using hashes here.

File details

Details for the file pyqrack_cpu-2.17.3-py3-none-manylinux_2_39_x86_64.whl.

File metadata

File hashes

Hashes for pyqrack_cpu-2.17.3-py3-none-manylinux_2_39_x86_64.whl
Algorithm Hash digest
SHA256 ae1af2f9b15cb12cd5de11fe0a811206bb4fa2a19c94fa6fe07fbd85f86f802d
MD5 79d8cc6c12e07d0ed4519782d7760a4d
BLAKE2b-256 6df9c0bea47eec7cd52928f4630ddc38c6941cf3e28c64b65bf84de9abac9eee

See more details on using hashes here.

File details

Details for the file pyqrack_cpu-2.17.3-py3-none-manylinux_2_35_x86_64.whl.

File metadata

File hashes

Hashes for pyqrack_cpu-2.17.3-py3-none-manylinux_2_35_x86_64.whl
Algorithm Hash digest
SHA256 303d51021ad9ad4ccb030f81da6f180aad8eb286fbb73e20cf012195ae54a42d
MD5 eb1a98100caefd212db7533a5718e4ed
BLAKE2b-256 5567552fafbae5f1295c7df51001bc73f7de5c37f73ff2ceb34fcb93d25a4f08

See more details on using hashes here.

File details

Details for the file pyqrack_cpu-2.17.3-py3-none-macosx_15_0_x86_64.whl.

File metadata

File hashes

Hashes for pyqrack_cpu-2.17.3-py3-none-macosx_15_0_x86_64.whl
Algorithm Hash digest
SHA256 cd91f4f04e0b2936d7e1bff6709071ad70c5210eae8134d63b01398b80ea7b09
MD5 de29975e50edc5536a5de52207b2cff3
BLAKE2b-256 3867c65dfba39a28bceb8424e6b0186d3fb24ee13ec1e4efb319b9e787a3ebd1

See more details on using hashes here.

File details

Details for the file pyqrack_cpu-2.17.3-py3-none-macosx_15_0_arm64.whl.

File metadata

File hashes

Hashes for pyqrack_cpu-2.17.3-py3-none-macosx_15_0_arm64.whl
Algorithm Hash digest
SHA256 1328366067acfe917446474c8862d4354d138da131fe7841bdfa22c4e754d993
MD5 6d2e0a7ee34ec595184b1c3c9629d599
BLAKE2b-256 fb4072e4dafcd137e1bea1fd22d893acff0a796ffd419e1d3143f788a214e0b8

See more details on using hashes here.

File details

Details for the file pyqrack_cpu-2.17.3-py3-none-macosx_14_0_arm64.whl.

File metadata

File hashes

Hashes for pyqrack_cpu-2.17.3-py3-none-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 19d3d4b8931c3d93ccd54477e1eea23f26399820ea1953dec73ae8b0a0ef5686
MD5 5b39bef5fa0a5dfe6338b1572c98c8ac
BLAKE2b-256 faf93c99896d6c0a79525a27b72c03a16d279c5ed552a2079996306aa3f36942

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 Sentry Error logging StatusPage Status page