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.17.2.tar.gz (71.6 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.17.2-py3-none-win_amd64.whl (1.0 MB view details)

Uploaded Python 3Windows x86-64

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

Uploaded Python 3manylinux: glibc 2.39+ x86-64

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

Uploaded Python 3manylinux: glibc 2.35+ x86-64

pyqrack_complex128-2.17.2-py3-none-macosx_15_0_x86_64.whl (2.1 MB view details)

Uploaded Python 3macOS 15.0+ x86-64

pyqrack_complex128-2.17.2-py3-none-macosx_15_0_arm64.whl (1.9 MB view details)

Uploaded Python 3macOS 15.0+ ARM64

pyqrack_complex128-2.17.2-py3-none-macosx_14_0_arm64.whl (2.0 MB view details)

Uploaded Python 3macOS 14.0+ ARM64

File details

Details for the file pyqrack_complex128-2.17.2.tar.gz.

File metadata

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

File hashes

Hashes for pyqrack_complex128-2.17.2.tar.gz
Algorithm Hash digest
SHA256 cb5ae877de09e1fdee67d423bf08e4fd09ba1d59739ad76c0d6061a1fd510cca
MD5 ff270350f26721c0133aa80fe6101a56
BLAKE2b-256 ef4b201cdac9b05bb8a1791195c42d108646a85245589a3ada69f53baba8458b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyqrack_complex128-2.17.2-py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 053a682504f5151689ea14a990eb9c4a27b9e1794cbba704bc77a88a908e61f7
MD5 e073f66ae53fe079276bb897789f1321
BLAKE2b-256 9fa70a399fc74afdd4962f367d0dfda45e7f82c18f3ed0231c4e6053d9e4b20d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyqrack_complex128-2.17.2-py3-none-manylinux_2_39_x86_64.whl
Algorithm Hash digest
SHA256 40bec62f222a6b6d49b15866a0ca2d05d0a830eb186c8c99e29e91e44622feec
MD5 224626376f94f05c72978c72516c7bd8
BLAKE2b-256 5cc18fe493c2d28086859bd29330b97195dd7e606ba2263f93151c1da9d45dd3

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyqrack_complex128-2.17.2-py3-none-manylinux_2_35_x86_64.whl
Algorithm Hash digest
SHA256 5031054482dc3594707459a5d0b753c1518e87ea037dac5d0523c70ef0b4b4bb
MD5 871f58dfaff6b96641057607832c3c23
BLAKE2b-256 cd1a263ffbbd374bf688ced3ae06d8e83c5893e6e8b8fcbc01cf7249db451c1d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyqrack_complex128-2.17.2-py3-none-macosx_15_0_x86_64.whl
Algorithm Hash digest
SHA256 31214bfd9eb042e337d8831057aeeed0267cfb29e1424a4fee90421ab1a06e25
MD5 fe68879db9f1a18d3d93c5139634ab7f
BLAKE2b-256 05a830e974b52a70ef34668e84bb70ab9662e01274c7f63d1b0e74708f7b2aa2

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyqrack_complex128-2.17.2-py3-none-macosx_15_0_arm64.whl
Algorithm Hash digest
SHA256 61f81f9a940439727d139e1c3d6d2487b872710c0b91e1e2b6f0bf876eebb71f
MD5 8193f659d1f25c84997c01c6d84ba339
BLAKE2b-256 1791a4ef39b505b015ffb94a58b87136cf6c729a3c18dadf990784f3603adc2f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyqrack_complex128-2.17.2-py3-none-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 bfdd093d3fcc70e166eb2896ec2ed2b09ce5eab0245588388f0ec0ae695a06e3
MD5 9b52421c03b3151dfa3b22a8e3e615b6
BLAKE2b-256 efffba4dbd00ac7c57e8ca18af3a12c6ee88b0d0b73a5e7f1046fe829fb4e459

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