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.8.0.tar.gz (62.8 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.8.0-py3-none-win_amd64.whl (818.2 kB view details)

Uploaded Python 3Windows x86-64

pyqrack_cpu-2.8.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.8.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.8.0-py3-none-macosx_15_0_x86_64.whl (2.1 MB view details)

Uploaded Python 3macOS 15.0+ x86-64

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

Uploaded Python 3macOS 15.0+ ARM64

pyqrack_cpu-2.8.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.8.0.tar.gz.

File metadata

  • Download URL: pyqrack_cpu-2.8.0.tar.gz
  • Upload date:
  • Size: 62.8 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.8.0.tar.gz
Algorithm Hash digest
SHA256 a7600a83e465279e44ce0bb63d3af56366c034da9e3fa371a3d82035254172df
MD5 ff9c6c1b639422f29a5328d42aa5e1d8
BLAKE2b-256 56af69c3efa68f14195b03a65d065be05d2a7f3b69f177665b040e46f42e55b4

See more details on using hashes here.

File details

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

File metadata

  • Download URL: pyqrack_cpu-2.8.0-py3-none-win_amd64.whl
  • Upload date:
  • Size: 818.2 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.8.0-py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 3e7398597f4043003bf8bbe72178af4ad5fee7745dba3d06b88bc1671739eb9b
MD5 83dafa85fea9edef26e9df4a6b57f78b
BLAKE2b-256 65b701b5dc6605ff5ef6999fc066d1912a51a24e3f454cd1abc2ae9b20534969

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyqrack_cpu-2.8.0-py3-none-manylinux_2_39_x86_64.whl
Algorithm Hash digest
SHA256 6d649d3666a737037679d9bf8428c588e0d74c3c0a3b9d49f42804d8c7ba3a7e
MD5 6c7593df8c4b7bef14da1a8d671b07aa
BLAKE2b-256 d82e44fd94e347ed6dd66f26ee9f15679d8d605de2c40572d543595a8b0c5ca2

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyqrack_cpu-2.8.0-py3-none-manylinux_2_35_x86_64.whl
Algorithm Hash digest
SHA256 96e0120cca88b061ec75c022e33fc4351fc9bfc2a0e3215eb6e223d839a2c83c
MD5 208fc2bab6b6b3afa40e1ade75d8e1bd
BLAKE2b-256 facd352da5b18596af12ac0fcaab08794dcf08d366c88eb36d19891d4260836d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyqrack_cpu-2.8.0-py3-none-macosx_15_0_x86_64.whl
Algorithm Hash digest
SHA256 cd6d62b8d138ab5edd944e6d386e4ce8418ece76bebf4c6784ae4673cc66473a
MD5 b0438695fc69c52f1f28ee6499f72ea6
BLAKE2b-256 51250bf4ac2f1883d3dc132986c95865512e516c1099404e9b11a069d6b00f2c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyqrack_cpu-2.8.0-py3-none-macosx_15_0_arm64.whl
Algorithm Hash digest
SHA256 e375bf1fe87c4738e5b93699df3384906dd5ef0dd4a4a19844d57873d71648a2
MD5 871110245cb980e7fe3531ea0695a184
BLAKE2b-256 b2a197fd7b3a197fd47bfce0d6055bb85373f5ccb030ac68a507c598660e7064

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyqrack_cpu-2.8.0-py3-none-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 9239978d40aab46a82c2b9c045a8f4fda81624fb55ffb38c8f09e54a336bf122
MD5 9e5266ca3f5f88add62cf301990b7343
BLAKE2b-256 05bba20731ae83d8c6535c80df84fda61c67652cd5462a7a49c78f31cce6f9ce

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