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.13.0.tar.gz (66.6 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.13.0-py3-none-win_amd64.whl (826.6 kB view details)

Uploaded Python 3Windows x86-64

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

Uploaded Python 3manylinux: glibc 2.39+ x86-64

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

Uploaded Python 3manylinux: glibc 2.35+ x86-64

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

Uploaded Python 3macOS 15.0+ x86-64

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

Uploaded Python 3macOS 15.0+ ARM64

pyqrack_cpu-2.13.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_cpu-2.13.0.tar.gz.

File metadata

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

File hashes

Hashes for pyqrack_cpu-2.13.0.tar.gz
Algorithm Hash digest
SHA256 3ba2b86ad45ee1f852048cf9d2700d06c80122a98a6828f606735db66d38762d
MD5 53dc8aa211eb2382795f63a1c69ca32a
BLAKE2b-256 e02e8a8f6fb74af568ae585bda8833cd9fd79f0e12e0578f88c82fa3246bc752

See more details on using hashes here.

File details

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

File metadata

  • Download URL: pyqrack_cpu-2.13.0-py3-none-win_amd64.whl
  • Upload date:
  • Size: 826.6 kB
  • 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_cpu-2.13.0-py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 5664584d74adc4dc3b45393615def8cfebc2925bfb07b1aed8850e480c65e42f
MD5 ff86516b0852e788e059911e9952b90e
BLAKE2b-256 a89190e3dc5d61da1942f7f2e04cd3b84fee3015a289815d1871679fd477dbfb

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyqrack_cpu-2.13.0-py3-none-manylinux_2_39_x86_64.whl
Algorithm Hash digest
SHA256 a678e40544f2a5e3fbdd4ef0c54301696ebeb5ffcf30455c37e0c24236459dae
MD5 d8be4b7d8e72f7a85ef1a1901ba419da
BLAKE2b-256 5c92f1c23cb60a9d971b8a0b2f09e19586194ba7a7c022544918644a00950019

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyqrack_cpu-2.13.0-py3-none-manylinux_2_35_x86_64.whl
Algorithm Hash digest
SHA256 37dacbe3bc9db5f419b3a86b2cd00c6e6d8065eff61d57b3f6782ad691f2a07d
MD5 7ed724ceca0ba301258f7d36d7a588a5
BLAKE2b-256 906ca273c32cbbb917bad367c584b140b609f31b73c7ef708fd5493dbbb994dc

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyqrack_cpu-2.13.0-py3-none-macosx_15_0_x86_64.whl
Algorithm Hash digest
SHA256 66e8254668b42f78bec341e1a3e633c77627932602d5526462da360cc33d6976
MD5 35216e1215009881cbf3bb4e6624f39b
BLAKE2b-256 92b9b8da86b857c823503f6fb0f63db4e1b09bce010f20859b08d0ecd38bb5cb

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyqrack_cpu-2.13.0-py3-none-macosx_15_0_arm64.whl
Algorithm Hash digest
SHA256 93c2c4bb35eaff713bd6e66f8997d3547073d53fcd5e0b0f17e5da4cb4056b4f
MD5 41deb303614e162503e57115cae6370c
BLAKE2b-256 fbcbec25a8dd1a564f9eb1eca999998ad77913ae74f29b828e5e1f2e1fcb2152

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyqrack_cpu-2.13.0-py3-none-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 14022c85e8dd93bb7928849a1bb352e57e6198677b20dff9611b0e373533622b
MD5 f84fae949bd4e4487ca4ffe0439f097d
BLAKE2b-256 19db272f9c9f01212582535009a5cf49a0e1bb4f439325283fc30df96db84bb0

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