Skip to main content

pyqrack

Downloads Downloads Downloads

Pure Python bindings for the pure C++11/OpenCL Qrack quantum computer simulator library

(PyQrack is just pure Qrack.)

Note: You must also install OpenCL to use this version of Qrack. (There are also CPU-only and CUDA version.)

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."

If you use an integrated graphics accelerator, like the Intel HD, setting environment variable PYQRACK_HOST_POINTER_DEFAULT_ON=1 (or to any "truthy" value) will automatically set the default of isHostPointer option of QrackSimulator to True, to engage "zero-copy" mode by default.

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_complex128-2.10.0.tar.gz (64.0 kB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

pyqrack_complex128-2.10.0-py3-none-win_amd64.whl (1.0 MB view details)

Uploaded Python 3Windows x86-64

pyqrack_complex128-2.10.0-py3-none-manylinux_2_39_x86_64.whl (3.7 MB view details)

Uploaded Python 3manylinux: glibc 2.39+ x86-64

pyqrack_complex128-2.10.0-py3-none-manylinux_2_35_x86_64.whl (3.7 MB view details)

Uploaded Python 3manylinux: glibc 2.35+ x86-64

pyqrack_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_complex128-2.10.0-py3-none-macosx_15_0_arm64.whl (1.9 MB view details)

Uploaded Python 3macOS 15.0+ ARM64

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

File metadata

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

File hashes

Hashes for pyqrack_complex128-2.10.0.tar.gz
Algorithm Hash digest
SHA256 a83f11efdb1e40353c3095c586985490139a2d805c35059154053e7f86c2b870
MD5 9d734641d8a1d2003e3b83ad8fb3facf
BLAKE2b-256 cce5885475271a19b5ff6d96cb1170b2918e1da46c90839a08ce62bfc6671e70

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyqrack_complex128-2.10.0-py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 6cdd4addcd295a7479ea8cc54cf77233b51f290b1e3663763b5c8ac4904a107d
MD5 cf12cddb9aaec37f4c08715574702749
BLAKE2b-256 dd0a87bfbdc6f2032411dc8907f9c1ce66920e96864b4ab89797c176b275e4eb

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyqrack_complex128-2.10.0-py3-none-manylinux_2_39_x86_64.whl
Algorithm Hash digest
SHA256 9ca8ff0b6ecfc5ac197cd83cd7cfd49c89a7283c87027f02f060fff3c597b891
MD5 f9136520a63d801685ed16f642398555
BLAKE2b-256 39a4c92eb4377224d87414571ace39f0efc64a535681043cdf1f96988e1a562c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyqrack_complex128-2.10.0-py3-none-manylinux_2_35_x86_64.whl
Algorithm Hash digest
SHA256 af915beaac3c2286a7a830ee98f09c7e1bf3098e1cf96f3c0fe65f734bb6777a
MD5 0ef8e7a5c0cbdb873c03c173ac5d6e21
BLAKE2b-256 b9280d806bd7b429eae564d72390ec543e9ff00b469c24201a1af7e55b73df9a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyqrack_complex128-2.10.0-py3-none-macosx_15_0_x86_64.whl
Algorithm Hash digest
SHA256 b6b2ff3310e45287c8c5f721ae06cedfb9a5c07b13c33040ea493191dd31de83
MD5 ed51ffbba08605e0e9165ae5c99d52cb
BLAKE2b-256 5c85ed1ba89aba45970e3dff7ce465d75159b117ba6603f9e55434b49714f1bb

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyqrack_complex128-2.10.0-py3-none-macosx_15_0_arm64.whl
Algorithm Hash digest
SHA256 455c4bed249b47cf96690ba158f394407ba0de78d4723c1924352bd7d068952e
MD5 1574ce859b2ccbdd59540f6ef55229fd
BLAKE2b-256 dfbae0dc781e834ef6da715b4d575176f4cff1f15f6dbc872459131c08335fda

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyqrack_complex128-2.10.0-py3-none-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 d83a6606ded7c60ca1ba54bb32a4102366a7eeb79d9151e66f25bd4eff302b38
MD5 b16a149db067c847ff0440a129bc42e2
BLAKE2b-256 c972c24608058ba329e9e0f66a85f6863e0d056d30cfbd2be434cfc14e4f8687

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