Skip to main content

pyqrack - Pure Python vm6502q/qrack Wrapper

Project description

pyqrack

Downloads Downloads Downloads

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

(PyQrack is just pure Qrack.)

This is the purely CPU-based variant of PyQrack (with module name pyqrack-cpu). This alternate build of PyQrack is provided so that systems that won't use OpenCL anyway (such as because they lack any GPUs or other accelerators like the Intel HD) do not need to install the OpenCL library in order to use PyQrack. In this form, both the PyQrack module and the underlying C++ Qrack library are entirely external dependency-free.

(If you installing from source, it doesn't matter whether you use pyqrack or pyqrack-cpu, because the build version of C++ Qrack you intend to use must already be installed locally.)

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

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, and to the broader community of Qrack contributors, for years of happy Qracking! You rock!

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pyqrack_cpu-1.32.8.tar.gz (34.0 kB view details)

Uploaded Source

Built Distributions

pyqrack_cpu-1.32.8-py3-none-win_amd64.whl (681.4 kB view details)

Uploaded Python 3 Windows x86-64

pyqrack_cpu-1.32.8-py3-none-manylinux_2_39_x86_64.whl (2.1 MB view details)

Uploaded Python 3 manylinux: glibc 2.39+ x86-64

pyqrack_cpu-1.32.8-py3-none-manylinux_2_35_x86_64.whl (2.1 MB view details)

Uploaded Python 3 manylinux: glibc 2.35+ x86-64

pyqrack_cpu-1.32.8-py3-none-manylinux_2_31_x86_64.whl (2.1 MB view details)

Uploaded Python 3 manylinux: glibc 2.31+ x86-64

pyqrack_cpu-1.32.8-py3-none-macosx_13_0_x86_64.whl (1.7 MB view details)

Uploaded Python 3 macOS 13.0+ x86-64

pyqrack_cpu-1.32.8-py3-none-macosx_12_0_x86_64.whl (1.6 MB view details)

Uploaded Python 3 macOS 12.0+ x86-64

File details

Details for the file pyqrack_cpu-1.32.8.tar.gz.

File metadata

  • Download URL: pyqrack_cpu-1.32.8.tar.gz
  • Upload date:
  • Size: 34.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.12.7

File hashes

Hashes for pyqrack_cpu-1.32.8.tar.gz
Algorithm Hash digest
SHA256 1f93939f92a7a7538fb68e17a9249378d912421bb6496b699baf4311ad2e0085
MD5 e7f69a47e34a9cccbc7a459c5a0d24e1
BLAKE2b-256 f4719f740663e9e2ed789be15d702c955232dee07a8f7f2b295d156e1bb2812f

See more details on using hashes here.

File details

Details for the file pyqrack_cpu-1.32.8-py3-none-win_amd64.whl.

File metadata

File hashes

Hashes for pyqrack_cpu-1.32.8-py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 49672781844ea7825e7358ac854ce422482d4e9e585a34f890a36bc6239a6462
MD5 271eec98d79ce8ae2afd918d7f234927
BLAKE2b-256 53a7af6def1ad94a29bd4d818eb45aa6c131108f2f6637923b379b38d7cd1ab5

See more details on using hashes here.

File details

Details for the file pyqrack_cpu-1.32.8-py3-none-manylinux_2_39_x86_64.whl.

File metadata

File hashes

Hashes for pyqrack_cpu-1.32.8-py3-none-manylinux_2_39_x86_64.whl
Algorithm Hash digest
SHA256 7ff5c904e9f9439e2094e79ab67f5e0583e5fbeb41cf27fc5299de8b873dcbfd
MD5 6d5e3bb6ddf8668d4fb4e92fc4ab9bcb
BLAKE2b-256 85f57735dc0c2378bbbe0492f55ba33f5ed02693c6f1a6caf44d2637d5af760e

See more details on using hashes here.

File details

Details for the file pyqrack_cpu-1.32.8-py3-none-manylinux_2_35_x86_64.whl.

File metadata

File hashes

Hashes for pyqrack_cpu-1.32.8-py3-none-manylinux_2_35_x86_64.whl
Algorithm Hash digest
SHA256 558d2ceb1f945ee361c1d1d71d51a195973285296da9852f03fad4e34bb23fe8
MD5 78ed6eca227bda44a1f474db78a7f07b
BLAKE2b-256 495dfb02992c5221218856d8ef6cc5c10cd4cba8a25a90d97e9e0bfe9edaeeca

See more details on using hashes here.

File details

Details for the file pyqrack_cpu-1.32.8-py3-none-manylinux_2_31_x86_64.whl.

File metadata

File hashes

Hashes for pyqrack_cpu-1.32.8-py3-none-manylinux_2_31_x86_64.whl
Algorithm Hash digest
SHA256 cf5d2d33cbf973bd56b51b469a54e95a81c0cf50f70f0e24379e9dd971b69b4b
MD5 746810da26a67ae3c492f7d69f4dde98
BLAKE2b-256 997205c7aec6b88f357a1d5335abd73c37bbead6f2a8e6e91406038410f86c8b

See more details on using hashes here.

File details

Details for the file pyqrack_cpu-1.32.8-py3-none-macosx_13_0_x86_64.whl.

File metadata

File hashes

Hashes for pyqrack_cpu-1.32.8-py3-none-macosx_13_0_x86_64.whl
Algorithm Hash digest
SHA256 ebc7fc97ec9d487e239e3d97268d9a1fad2d0f1c8a47d3cb32a97e7bb13dc633
MD5 be34b99337b30fc514acb1cd691f6d49
BLAKE2b-256 a287d57b9ff92b09b93a662df2bbdf5e47eec2c7c981fb7ec19109a5ca0b8a4a

See more details on using hashes here.

File details

Details for the file pyqrack_cpu-1.32.8-py3-none-macosx_12_0_x86_64.whl.

File metadata

File hashes

Hashes for pyqrack_cpu-1.32.8-py3-none-macosx_12_0_x86_64.whl
Algorithm Hash digest
SHA256 de206f46d78679a553461ac7a0b0c240cf303355f86b9fff2e54a73b14d47612
MD5 2d9587b0055139ac8c8a93c43c6e86e1
BLAKE2b-256 3c8e02fa669c41f13aa42dc1f574df28ab6272cac322dbd148a209ffc542d832

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page