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

Uploaded Python 3Windows x86-64

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

Uploaded Python 3macOS 15.0+ x86-64

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

Uploaded Python 3macOS 15.0+ ARM64

pyqrack_complex128-2.17.1-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.1.tar.gz.

File metadata

  • Download URL: pyqrack_complex128-2.17.1.tar.gz
  • Upload date:
  • Size: 71.5 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.1.tar.gz
Algorithm Hash digest
SHA256 1808baa19b4ae71d9137c1720fbdbe58bbb2aed0bf97f8426d36053dbf86bdcd
MD5 f63a93c9e81da530b22aadbb59451a56
BLAKE2b-256 51ae0768dd44b7bd1b0abaa532ebf7d8441108c9385653edee7ad07fb5c0f8c4

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyqrack_complex128-2.17.1-py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 00eff521747db16725b4f418947d571b16ecb5d6195191d696af772f73ec5d60
MD5 6d772171d06c68df1a08a368cdf6d382
BLAKE2b-256 74b5245ed71b7845d0189512b2811b4d5c65e94b152cfc69d429df46e0cd812c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyqrack_complex128-2.17.1-py3-none-manylinux_2_39_x86_64.whl
Algorithm Hash digest
SHA256 1c41b405603b5d49a8d8e7158c957978d08e33d19410c181bbf8d8a9b9b9d696
MD5 d001194775b4df295daabc43a559ee87
BLAKE2b-256 1547cacc4c685f87bb8b555c646c9ec3e56e54fcbb349d6af4349a0f71d6bb6a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyqrack_complex128-2.17.1-py3-none-manylinux_2_35_x86_64.whl
Algorithm Hash digest
SHA256 5a169a16458175377c389164dd4d7df3eff7a8647ebb5d08049393e80512dc58
MD5 0dc2f4f581e2451978b5acc36b8bb600
BLAKE2b-256 992ba9e65651e2f030bde563329c3836dcd2fd16e2205ee5a1a2a27b93ca2d71

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyqrack_complex128-2.17.1-py3-none-macosx_15_0_x86_64.whl
Algorithm Hash digest
SHA256 239ac3ce634160cb71a75f286d425b61d4a1c7690e1faed9f8ee139b4741cf23
MD5 03a171df96d0fc514cc6059a291df3b0
BLAKE2b-256 ed8e9fa08a8aab0964effc504777fcf8dd5d4517421f5fd33ee9893a7c14ac7f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyqrack_complex128-2.17.1-py3-none-macosx_15_0_arm64.whl
Algorithm Hash digest
SHA256 6a56e15f60eeed13c009ac0c7338689753d71e24b6cea58b4aefa14d88ce0b4a
MD5 0c3d475eae7883ae8e1e48c251ea0c32
BLAKE2b-256 141867b6096dc5f428d591be32dc5a7c98926b11e7e5cebe2aa5ac3001c31008

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyqrack_complex128-2.17.1-py3-none-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 7bc06a6ca15de0fa9b2b382e567f8e1dc07d4bc2e4f929a57e7ace6ccb41899d
MD5 218f6482bf662a3324a4888801dd567c
BLAKE2b-256 075c080848df07a10ebe4d8700ca713e3b28d0332e2b5547ed14e30f7a85ecba

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