Skip to main content

Library for performing Pauli propagation.

Project description

Pauli Prop

About

Pauli propagation, also known as sparse Pauli dynamics (SPD), is a framework for approximating the evolution of operators in the Pauli basis under the action of other operators, such as quantum circuit gates and noise channels [1] - [5]. This approach can be effective when the operators involved are expected to remain sparse in the Pauli basis. The technique has been used to classically estimate expectation values of quantum systems and also to reduce the depths of quantum circuits to be run on a quantum processor [6]. To learn how to use this package to simulate expectation values of quantum systems, check out the tutorial.

This package provides a Rust-accelerated Python interface for performing the most common Pauli propagation routines.

Technical details
  • Rust-accelerated Python interface
  • Ability to truncate operator terms during evolution based on an absolute coefficient tolerance, a fixed number of terms in the evolving operator, or a combination of both.
  • Ability to perform Pauli propagation in both the Schrödinger and Heisenberg frameworks.
  • Novel technique for approximating the conjugation of two Pauli-sum operators. This heuristic implementation greedily generates contributions to the product expected to be most significant.
Computational requirements

Both the memory and time cost for Pauli propagation routines generally scale with the size to which the evolved operator is allowed to grow.

propagate_through_rotation_gates: As the Pauli operator is propagated in the Pauli basis under the action of a sequence of $N$ Pauli rotation gates of an $M$-qubit circuit, the number of terms will grow as $\mathcal{O}(2^{N})$ towards a maximum of $4^M$ unique Pauli components. To control the memory usage, the operator is truncated after application of each gate, which introduces some error proportional to the magnitudes of the truncated terms' coefficients. The memory requirements are generally linear in the size of the evolved operator and runtime scales linearly in both the operator size and the number of gates.

propagate_through_operator: Conjugates one operator in the Pauli basis by another by greedily accumulating terms in the sum, $\sum_{i,j,k}G^{\dagger}_iO_jG_k$, where $i,j,k$ are sparse indices over the Pauli basis. This implementation sorts the coefficients in each operator by descending magnitude then searches the 3D index space for the terms with the largest coefficients, starting with the origin, $(0, 0, 0)$, and accumulating $(i,j,k)$ triplets up to a specified cutoff. The time spent searching can often be made negligible by increasing the search step size in $(i,j,k)$ space, which provides a cubic speedup for this subroutine. In our profiling, significant time can be spent sorting the operators and performing Pauli multiplication to generate the terms in the new operator.


Documentation

All documentation is available at https://qiskit.github.io/pauli-prop/.


Installation

We encourage installing this package via pip, when possible:

pip install 'pauli-prop'

For more installation information refer to these installation instructions.


Deprecation Policy

We follow semantic versioning and are guided by the principles in Qiskit's deprecation policy. We may occasionally make breaking changes in order to improve the user experience. When possible, we will keep old interfaces and mark them as deprecated, as long as they can co-exist with the new ones. Each substantial improvement, breaking change, or deprecation will be documented in the release notes.


Contributing

The source code is available on GitHub.

The developer guide is located at CONTRIBUTING.md in the root of this project's repository. By participating, you are expected to uphold Qiskit's code of conduct.


License

Apache License 2.0


References

[1] Tomislav Begušić, Johnnie Gray, Garnet Kin-Lic Chan, Fast and converged classical simulations of evidence for the utility of quantum computing before fault tolerance, arXiv:2308.05077 [quant-ph].

[2] Nicolas Loizeau, et al., Quantum many-body simulations with PauliStrings.jl, arXiv:2410.09654 [quant-ph].

[3] Manuel S. Rudolph, et al., Pauli Propagation: A Computational Framework for Simulating Quantum Systems, arXiv:2505.21606 [quant-ph].

[4] Hrant Gharibyan, et al., A Practical Guide to using Pauli Path Simulators for Utility-Scale Quantum Experiments, arXiv:2507.10771 [quant-ph].

[5] Lukas Broers, et al., Scalable Simulation of Quantum Many-Body Dynamics with Or-Represented Quantum Algebra, arXiv:2506.13241 [quant-ph].

[6] Bryce Fuller, et al., Improved Quantum Computation using Operator Backpropagation, arXiv:2502.01897 [quant-ph].

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

pauli_prop-0.0.0.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.

pauli_prop-0.0.0-cp310-abi3-win_amd64.whl (186.1 kB view details)

Uploaded CPython 3.10+Windows x86-64

pauli_prop-0.0.0-cp310-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (339.9 kB view details)

Uploaded CPython 3.10+manylinux: glibc 2.17+ x86-64

pauli_prop-0.0.0-cp310-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.whl (324.7 kB view details)

Uploaded CPython 3.10+manylinux: glibc 2.17+ ARM64

pauli_prop-0.0.0-cp310-abi3-macosx_11_0_arm64.whl (292.4 kB view details)

Uploaded CPython 3.10+macOS 11.0+ ARM64

pauli_prop-0.0.0-cp310-abi3-macosx_10_12_x86_64.whl (304.7 kB view details)

Uploaded CPython 3.10+macOS 10.12+ x86-64

File details

Details for the file pauli_prop-0.0.0.tar.gz.

File metadata

  • Download URL: pauli_prop-0.0.0.tar.gz
  • Upload date:
  • Size: 71.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for pauli_prop-0.0.0.tar.gz
Algorithm Hash digest
SHA256 031f4f620a83dcd806cb0798ecd3e2ddbe52ccf2b769534fe41babb80c7eb614
MD5 0b23ddf005c6c1f828e2fc192aad1e2d
BLAKE2b-256 f5ed1a8fec5fa5db8710de412f229bfca23be1e7bab5a36f4b1fd5c29d8052dc

See more details on using hashes here.

Provenance

The following attestation bundles were made for pauli_prop-0.0.0.tar.gz:

Publisher: release.yml on Qiskit/pauli-prop

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pauli_prop-0.0.0-cp310-abi3-win_amd64.whl.

File metadata

  • Download URL: pauli_prop-0.0.0-cp310-abi3-win_amd64.whl
  • Upload date:
  • Size: 186.1 kB
  • Tags: CPython 3.10+, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for pauli_prop-0.0.0-cp310-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 1fd93e0f249237257946d89454a5f05feffd62ff5d58c1a2681e126a1269249b
MD5 c40ace3d2768010c9d7df1787a4094f3
BLAKE2b-256 9038dfa81119d98a7e1a3f0cd880e26f317d58fad05fd091d15a8add04237a50

See more details on using hashes here.

Provenance

The following attestation bundles were made for pauli_prop-0.0.0-cp310-abi3-win_amd64.whl:

Publisher: release.yml on Qiskit/pauli-prop

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pauli_prop-0.0.0-cp310-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.whl.

File metadata

File hashes

Hashes for pauli_prop-0.0.0-cp310-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 c92e0a54bf7cd3d6ea0419260ee00567e48b073168f640c0f64f4edff258a639
MD5 4da0394decec7d0598af4dcd1ceee3cb
BLAKE2b-256 a55eb95a25dda4835d073c5828116758de561807439e66fe78e47990d3274c6e

See more details on using hashes here.

Provenance

The following attestation bundles were made for pauli_prop-0.0.0-cp310-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.whl:

Publisher: release.yml on Qiskit/pauli-prop

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pauli_prop-0.0.0-cp310-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.whl.

File metadata

File hashes

Hashes for pauli_prop-0.0.0-cp310-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.whl
Algorithm Hash digest
SHA256 086805f5f6cc3b7bedf7bd78b942b237da06c497d635d1fbb7f98c95c3dffccf
MD5 367001f005a10ce5d081ef54c910b6f5
BLAKE2b-256 3b76ec0af96b3a5502d883604bc7c948504a1092138267ba5ca775bd2eaf0fb7

See more details on using hashes here.

Provenance

The following attestation bundles were made for pauli_prop-0.0.0-cp310-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.whl:

Publisher: release.yml on Qiskit/pauli-prop

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pauli_prop-0.0.0-cp310-abi3-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pauli_prop-0.0.0-cp310-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 3908f1a248c70a4990d041398f1f586912d73ac1941ff8edda2685339b456b5a
MD5 2fbd10f139ab49b99657ab0462c754fd
BLAKE2b-256 f15778b24fb2dd1bd3405fd64df9df026bc51aa5ac8973fa36b392462c2b451a

See more details on using hashes here.

Provenance

The following attestation bundles were made for pauli_prop-0.0.0-cp310-abi3-macosx_11_0_arm64.whl:

Publisher: release.yml on Qiskit/pauli-prop

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pauli_prop-0.0.0-cp310-abi3-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for pauli_prop-0.0.0-cp310-abi3-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 576c6d73f1bf2282e44fadd0b1bf781e3bc8f6ec567dac136ff429fcb281c0e8
MD5 7e86abee49fc4ac1aa7be1033e149033
BLAKE2b-256 32811a302f2157a5d6557df03b6607ca598e3d6326c270df894e0c64047302ba

See more details on using hashes here.

Provenance

The following attestation bundles were made for pauli_prop-0.0.0-cp310-abi3-macosx_10_12_x86_64.whl:

Publisher: release.yml on Qiskit/pauli-prop

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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