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.11.1.tar.gz (66.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.11.1-py3-none-win_amd64.whl (826.5 kB view details)

Uploaded Python 3Windows x86-64

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

Uploaded Python 3manylinux: glibc 2.39+ x86-64

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

Uploaded Python 3manylinux: glibc 2.35+ x86-64

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

Uploaded Python 3macOS 15.0+ x86-64

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

Uploaded Python 3macOS 15.0+ ARM64

pyqrack_cpu-2.11.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_cpu-2.11.1.tar.gz.

File metadata

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

File hashes

Hashes for pyqrack_cpu-2.11.1.tar.gz
Algorithm Hash digest
SHA256 24c36f967b1a2b3cf1c263f2c8a805d58f87bdd511827ca09faa167d4aae29c2
MD5 a7f0e86bbbf27c46049c5801e4c42ae6
BLAKE2b-256 a64bf17a522a2f57166fec0404a534ac5c83bd1bca672271d95bfe330c36d24f

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for pyqrack_cpu-2.11.1-py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 09e4108d6075e4d6f38c309fff37e64eb0609fbfba6779955f00da8679e1d577
MD5 66c30f1a487a097b7d85e303af1af557
BLAKE2b-256 56a706350a8f1b6be5351591ab1c4ba28b78285a4a30605e2b9432bc370b9821

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyqrack_cpu-2.11.1-py3-none-manylinux_2_39_x86_64.whl
Algorithm Hash digest
SHA256 b0963d310e778c8134695a2842cc8191f986944c9d9f4e303fa1670f2180a30d
MD5 8ee6cbdca6453a0748f99b83e9681649
BLAKE2b-256 88a456737e160e22909def8d49b0c629f39e97d44f4f49bf0ae4f01d39fe40ab

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyqrack_cpu-2.11.1-py3-none-manylinux_2_35_x86_64.whl
Algorithm Hash digest
SHA256 aa67634bd64db4d0e0260b8248ca8b42ec02e27d75a845b7d0d7c4bf6815aa75
MD5 12286c3794cde484cbcb6821409aa9b4
BLAKE2b-256 39b1d952008051c650f7e3aaa8d4d92a54e9b34b2d0e9e4a63b45efe3bfa0fcc

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyqrack_cpu-2.11.1-py3-none-macosx_15_0_x86_64.whl
Algorithm Hash digest
SHA256 4d9b4fdd488008d96de7e52d92cbf456cf5b0cdea7b8b8afb2472c29247489b5
MD5 18908b1db9684b7b91a626cfe85725d9
BLAKE2b-256 82db052f50d7c1a26b6ccd887a3678bda20d909598fd2a31abb1db6726161e5e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyqrack_cpu-2.11.1-py3-none-macosx_15_0_arm64.whl
Algorithm Hash digest
SHA256 a8f32c00f3859650be7a2294a3e152770787edef3ddb1f1a454abb3899ec1dda
MD5 26b7087e00e6811157a505b5e161b7c7
BLAKE2b-256 f7ee6bb38d0b34594ae771cf92134076851405efafc0863efefeaa46d6779ac8

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyqrack_cpu-2.11.1-py3-none-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 af96f67f7d7306da6d5881b319a6aa9e0397b16b1e943591d1486ab729fdd06f
MD5 e7df8b2ebf356413e6a111175416e079
BLAKE2b-256 0b4f30c49e23ee80f6c4fc9b15e3bcc15cd4e8af5e56f1ae955377484174c8a1

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