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.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_cpu-2.13.1-py3-none-win_amd64.whl (827.3 kB view details)

Uploaded Python 3Windows x86-64

pyqrack_cpu-2.13.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.13.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.13.1-py3-none-macosx_15_0_x86_64.whl (2.1 MB view details)

Uploaded Python 3macOS 15.0+ x86-64

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

Uploaded Python 3macOS 15.0+ ARM64

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

File metadata

  • Download URL: pyqrack_cpu-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_cpu-2.13.1.tar.gz
Algorithm Hash digest
SHA256 3a6aab73db6fb6c5f228b0dfc2f2acf9d07b3f09cedee0fc3155532bc59e28c6
MD5 36ae78540e1baffe3f5987c0059b7d17
BLAKE2b-256 8fed092286b27e7b69399b3787d0b5d3bc9f219cc7cc1feb9aa1f0b7fd28cd69

See more details on using hashes here.

File details

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

File metadata

  • Download URL: pyqrack_cpu-2.13.1-py3-none-win_amd64.whl
  • Upload date:
  • Size: 827.3 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.1-py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 0123a43b65548bae966c554b426b2316275ab4bf718b44577871b00d1b6c10aa
MD5 bc58a995601334045423f5f6840f9b3d
BLAKE2b-256 38c1a82429fd0e2a06e67ffccd9d2408a9cc8cd3edd4084fc25bb91447329718

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyqrack_cpu-2.13.1-py3-none-manylinux_2_39_x86_64.whl
Algorithm Hash digest
SHA256 c9f0551521a270e0f1355d9d1686cbc38eb08f3fd882130f5a68c98b60873069
MD5 c7c6e4c946115a801f464349ba8141f5
BLAKE2b-256 417f8fd3f7d730ad260f931ffa2daea3b21871a987880b9691693545c7394778

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyqrack_cpu-2.13.1-py3-none-manylinux_2_35_x86_64.whl
Algorithm Hash digest
SHA256 1f07c2e3eb3d8f5b88e2643c446b9b9d4f172193248d153ce8a900d353cf9516
MD5 0d1ec248cdbd7c64bc3036e27ac8e9c8
BLAKE2b-256 6c4fd33040a6ae3d5cd10c4409a1ed140e354d32397351b837312ee759bd9e3f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyqrack_cpu-2.13.1-py3-none-macosx_15_0_x86_64.whl
Algorithm Hash digest
SHA256 494e860dcdfae2e372f20439d77a69c71549e44514e062ad519c8d1307de9c25
MD5 27db1b4e590a5e631ca7e832cfc9e011
BLAKE2b-256 73d43d408edd9895b7e952a5e9095929bd7ad70229e5b4a8f9bc0aafc8ef6676

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyqrack_cpu-2.13.1-py3-none-macosx_15_0_arm64.whl
Algorithm Hash digest
SHA256 4aadc4c95177c45a339c833323571d5303629bc67c28e4a3329ba36f6db65ba9
MD5 8d82b21023db94ebdc96cf0b34e24515
BLAKE2b-256 234bab392774a9b9219d6fbda46481607925aabb14441a317b20673d10d2f8a8

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyqrack_cpu-2.13.1-py3-none-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 d7750888f2b52727405568d2982843e607c60542e910481599012da85f2246b0
MD5 ec9746afd66a53c245f098fe027fb10d
BLAKE2b-256 f9c1b971e68ac0d1b9bbb362ac585907ad3eccca076f12ac09367bb2b51cb9a7

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