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_complex128-2.10.0.tar.gz (64.1 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_complex128-2.10.0-py3-none-win_amd64.whl (829.2 kB view details)

Uploaded Python 3Windows x86-64

pyqrack_cpu_complex128-2.10.0-py3-none-manylinux_2_39_x86_64.whl (3.1 MB view details)

Uploaded Python 3manylinux: glibc 2.39+ x86-64

pyqrack_cpu_complex128-2.10.0-py3-none-manylinux_2_35_x86_64.whl (3.1 MB view details)

Uploaded Python 3manylinux: glibc 2.35+ x86-64

pyqrack_cpu_complex128-2.10.0-py3-none-macosx_15_0_x86_64.whl (2.1 MB view details)

Uploaded Python 3macOS 15.0+ x86-64

pyqrack_cpu_complex128-2.10.0-py3-none-macosx_15_0_arm64.whl (1.9 MB view details)

Uploaded Python 3macOS 15.0+ ARM64

pyqrack_cpu_complex128-2.10.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_complex128-2.10.0.tar.gz.

File metadata

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

File hashes

Hashes for pyqrack_cpu_complex128-2.10.0.tar.gz
Algorithm Hash digest
SHA256 803f580efaf4d2df1c066a5c2c42a2d8fad19d572f89c00c2e2a09f1a66198fc
MD5 44794ba2b561c4a8ea5fd50a4e6a8365
BLAKE2b-256 d7b55ff9c8c865fc712df9f0e07b0f0d3e8fba4ebdaf9bb258c0ba02910e303c

See more details on using hashes here.

File details

Details for the file pyqrack_cpu_complex128-2.10.0-py3-none-win_amd64.whl.

File metadata

File hashes

Hashes for pyqrack_cpu_complex128-2.10.0-py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 8a10e3ce450a50a6ecb98818b2f67a54b4ec3a1ee22469fd68b2842ffed625da
MD5 adf54cf69bd8fbc6d4a38eaed5a3e76d
BLAKE2b-256 f12be88a564b71f505c18eba7069d22a73e5ca26d87f7ec3735d5cee55c0c3f0

See more details on using hashes here.

File details

Details for the file pyqrack_cpu_complex128-2.10.0-py3-none-manylinux_2_39_x86_64.whl.

File metadata

File hashes

Hashes for pyqrack_cpu_complex128-2.10.0-py3-none-manylinux_2_39_x86_64.whl
Algorithm Hash digest
SHA256 6f02f9221c080bc192c2476594d204268cec62a59834b5cc6251faa5b4a8cae4
MD5 3065ccfa26eeb4af749d7683fc866d64
BLAKE2b-256 94426f5d480275294bba059e1d720c2d66e8b757da2bf699d3023f2aeecee8cd

See more details on using hashes here.

File details

Details for the file pyqrack_cpu_complex128-2.10.0-py3-none-manylinux_2_35_x86_64.whl.

File metadata

File hashes

Hashes for pyqrack_cpu_complex128-2.10.0-py3-none-manylinux_2_35_x86_64.whl
Algorithm Hash digest
SHA256 f45eda0d25fcd3caabb36dbed5ce7652086da08b15434b58205c939dee17623a
MD5 9a942e431758372c0ccbc79b6bb168ec
BLAKE2b-256 3651e90e991e0e638bd6b5a5c6573a2c7f3e82cd15b8d654940e44faa69a1418

See more details on using hashes here.

File details

Details for the file pyqrack_cpu_complex128-2.10.0-py3-none-macosx_15_0_x86_64.whl.

File metadata

File hashes

Hashes for pyqrack_cpu_complex128-2.10.0-py3-none-macosx_15_0_x86_64.whl
Algorithm Hash digest
SHA256 b6ba0ee4af1921daa1ba04c40390205dad472ff6051f7144ec96ce38b17a57ef
MD5 8550a9ed5939e8d60b206ffdffff1a79
BLAKE2b-256 a62b4567221338dec6ecea9d28d75ae1969ae3e4eeead95d9e74c18cf0fa0f5e

See more details on using hashes here.

File details

Details for the file pyqrack_cpu_complex128-2.10.0-py3-none-macosx_15_0_arm64.whl.

File metadata

File hashes

Hashes for pyqrack_cpu_complex128-2.10.0-py3-none-macosx_15_0_arm64.whl
Algorithm Hash digest
SHA256 7c2373ed05015862d53a55f1435ce75d2fa20cc4ba220e6d836fc052625f34b3
MD5 8e72032b951a8d478384a9c46606815a
BLAKE2b-256 5e607672fafb76581b445f300ee3526967bccd9213f393b219b6d1e9f920973e

See more details on using hashes here.

File details

Details for the file pyqrack_cpu_complex128-2.10.0-py3-none-macosx_14_0_arm64.whl.

File metadata

File hashes

Hashes for pyqrack_cpu_complex128-2.10.0-py3-none-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 4a43d620835d5089560ff029e03b477f5b5537425ba330fd51be10298ffbbe67
MD5 aff4a5186949ce6b8519e642c5f9152d
BLAKE2b-256 22dcb4f25ebbbb4c41454ce37ebf8d20e8830e38f2389c444dc2451e60f5da90

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