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-2.15.2.tar.gz (71.3 kB view details)

Uploaded Source

Built Distributions

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

pyqrack-2.15.2-py313-none-android_16_arm64_v8a.whl (17.0 MB view details)

Uploaded Android API level 16+ ARM64 v8aPython 3.13

pyqrack-2.15.2-py3-none-win_amd64.whl (1.0 MB view details)

Uploaded Python 3Windows x86-64

pyqrack-2.15.2-py3-none-manylinux_2_39_x86_64.whl (3.7 MB view details)

Uploaded Python 3manylinux: glibc 2.39+ x86-64

pyqrack-2.15.2-py3-none-manylinux_2_35_x86_64.whl (3.7 MB view details)

Uploaded Python 3manylinux: glibc 2.35+ x86-64

pyqrack-2.15.2-py3-none-macosx_15_0_x86_64.whl (2.1 MB view details)

Uploaded Python 3macOS 15.0+ x86-64

pyqrack-2.15.2-py3-none-macosx_15_0_arm64.whl (1.9 MB view details)

Uploaded Python 3macOS 15.0+ ARM64

pyqrack-2.15.2-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-2.15.2.tar.gz.

File metadata

  • Download URL: pyqrack-2.15.2.tar.gz
  • Upload date:
  • Size: 71.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.15

File hashes

Hashes for pyqrack-2.15.2.tar.gz
Algorithm Hash digest
SHA256 ddb89cd469c42707dd13773fb6c64bcc6c2d08968bfdcdc387f3e7b9a483a8a7
MD5 70bfe12b0c370c5f635ece7e2df86816
BLAKE2b-256 073c9f4a9b74d4ed0f729e324e9cd26c762c8c4b05090b06b960b96ba5d3a46e

See more details on using hashes here.

File details

Details for the file pyqrack-2.15.2-py313-none-android_16_arm64_v8a.whl.

File metadata

File hashes

Hashes for pyqrack-2.15.2-py313-none-android_16_arm64_v8a.whl
Algorithm Hash digest
SHA256 ad019d3651781c20e432d5551ae6da568f1cbcb0df13b1aa1da7133f6513919d
MD5 4815a2cbed78c7ce2c056025c651a224
BLAKE2b-256 de32d36020c5fc6ff971165fd57b71ff4e64edc6cfde072dc9ec2110681aab38

See more details on using hashes here.

File details

Details for the file pyqrack-2.15.2-py3-none-win_amd64.whl.

File metadata

  • Download URL: pyqrack-2.15.2-py3-none-win_amd64.whl
  • Upload date:
  • Size: 1.0 MB
  • 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-2.15.2-py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 d2c338e96fe007f2355d534c28f9a68369e109366fbb7547d720f51750ba5816
MD5 b674ff5d309627feb939da7d41516fd3
BLAKE2b-256 b0354c7b6f3467336a3b8c0f6a587b90083f32cbeb976fbadc3a220534e02a8f

See more details on using hashes here.

File details

Details for the file pyqrack-2.15.2-py3-none-manylinux_2_39_x86_64.whl.

File metadata

File hashes

Hashes for pyqrack-2.15.2-py3-none-manylinux_2_39_x86_64.whl
Algorithm Hash digest
SHA256 b2e2bb3d25dd005d629d006db0418d19f121666d6ed9dfd475e3e76b2d20fb11
MD5 06386e7efa588d23140306012e79801a
BLAKE2b-256 23fb76954e9f5fd5e48c2ed5011eda67d301578ece7c85197b248a7542f25f9e

See more details on using hashes here.

File details

Details for the file pyqrack-2.15.2-py3-none-manylinux_2_35_x86_64.whl.

File metadata

File hashes

Hashes for pyqrack-2.15.2-py3-none-manylinux_2_35_x86_64.whl
Algorithm Hash digest
SHA256 473ec88a287daea302cce64228096b480b1a4eb8b32a24079bdd775e7688e44d
MD5 1957aa370b9d2daecff10da2d9a2087b
BLAKE2b-256 0a290cdd21f3d7ad875c71b9554c125a6edf8dcb634a40b4726e33bace1e0dce

See more details on using hashes here.

File details

Details for the file pyqrack-2.15.2-py3-none-macosx_15_0_x86_64.whl.

File metadata

File hashes

Hashes for pyqrack-2.15.2-py3-none-macosx_15_0_x86_64.whl
Algorithm Hash digest
SHA256 1fa5533bb2ba57c1cd389d8b788560c7580f15abf53024aa117dea9ef38f7c5a
MD5 432bc1c89fd926fa537fce1f47aaaf50
BLAKE2b-256 869dc4a096144637a437cf6271a6d06d499271705f6bd42273e43e899757a807

See more details on using hashes here.

File details

Details for the file pyqrack-2.15.2-py3-none-macosx_15_0_arm64.whl.

File metadata

File hashes

Hashes for pyqrack-2.15.2-py3-none-macosx_15_0_arm64.whl
Algorithm Hash digest
SHA256 3a05fec1e30067faefbb7c8e917f32546a580c509f3c43628a9c4716c16c95d7
MD5 5d02a8504b3a991b45aa806d6a1108a2
BLAKE2b-256 7eb47a7e43ecc2fda623dce8ad5e91a1a5f39d7fe03e452ac0593d178e40d49a

See more details on using hashes here.

File details

Details for the file pyqrack-2.15.2-py3-none-macosx_14_0_arm64.whl.

File metadata

File hashes

Hashes for pyqrack-2.15.2-py3-none-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 49633d14c84c23dcc7d352543d3d675fe3cf9e4790eca3447d38f04522d7e708
MD5 a5b031cb4b957c266f5d4857c54230c9
BLAKE2b-256 c7b026b3ed7f27cf597f377a243d5657175b8f0dba4fb956742c1d8a78be72af

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