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

Uploaded Python 3Windows x86-64

pyqrack_complex128-2.12.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.12.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.12.0-py3-none-macosx_15_0_x86_64.whl (2.1 MB view details)

Uploaded Python 3macOS 15.0+ x86-64

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

Uploaded Python 3macOS 15.0+ ARM64

pyqrack_complex128-2.12.0-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.12.0.tar.gz.

File metadata

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

File hashes

Hashes for pyqrack_complex128-2.12.0.tar.gz
Algorithm Hash digest
SHA256 59811bdb897eedd81d61c35735c947704a0d6ba2a895c32119fc6e9b7b1144ee
MD5 51b0e696dd4a29287cbb26ae5f0242e8
BLAKE2b-256 6a2dba5279123eb842cd23bfb015c00b1f6d54293f606c3b0ad4e8ebb713b2b6

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyqrack_complex128-2.12.0-py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 5e809c35e3feb3478a1141d9ef66236afa7ebb8a0381f3cdfd2503f278638e1b
MD5 ad6b9e960ba94fa87f54fc28f965d8c5
BLAKE2b-256 91dbfcd73b7515b2c4fc8556feb69cbd19d734123e68ba2f67526de777ed9406

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyqrack_complex128-2.12.0-py3-none-manylinux_2_39_x86_64.whl
Algorithm Hash digest
SHA256 98d5e6c7bf4cb7c44627454956b3a73b7fe85117b78e3a37b8f8d5150c6ca843
MD5 f1f08520ba5c582e85ffd51837d65472
BLAKE2b-256 317ece09b39e066caa84e616fffc8177e9170a3b4df6509c3024a01061909097

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyqrack_complex128-2.12.0-py3-none-manylinux_2_35_x86_64.whl
Algorithm Hash digest
SHA256 382edc2a01187a1a33c3c94604e8d82b753d64914dd3e19ea29d94a33734902d
MD5 acdf91b4d9ed277d46976f150fa4d604
BLAKE2b-256 bdc409565014c80bcb8abd2e34eaf8abf8c3aa61fd12682b200c5f4b02db3d20

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyqrack_complex128-2.12.0-py3-none-macosx_15_0_x86_64.whl
Algorithm Hash digest
SHA256 7845e5673d4f99504afe2600c45d83550bc2907cd37c0326bda5d333792023b3
MD5 fd0b4d64770a999adf6d1747e4981bc7
BLAKE2b-256 8ec57a4abff1b53d1f4b7b0520f43c058b1478a221dc871641d9036f458e3270

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyqrack_complex128-2.12.0-py3-none-macosx_15_0_arm64.whl
Algorithm Hash digest
SHA256 e95634b9af305daaec73f7d6c683823ff908017ad96d592f336f3e49eb4e105d
MD5 a4033f435f9a153d103ec62717220712
BLAKE2b-256 9becf748cfb869933d6fc41e5a99b6a12d503d0ce85a60ff53ceda6ff24da6de

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyqrack_complex128-2.12.0-py3-none-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 743df80bd2d6d579a5546e5ea7cec309c6dfeb7473df55f9146a8ab5653b2600
MD5 64e422dfdbe618e2bdfb88cf84f46341
BLAKE2b-256 8466f3eeb301ae0f6acf5e4ae61433ef5bbfab4c38e91df8ee5bce86a41d918e

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