Skip to main content

Library for performing Pauli propagation.

Project description

Pauli Prop

About

Pauli propagation 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].

This package provides a Rust-accelerated Python interface for performing Pauli propagation. The subroutines in this package may be used to implement:

  • Lightcone shading [7] and other novel error mitigation techniques
  • Operator backpropagation (OBP) [6]
  • Classical simulation of expectation values [tutorials]
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].

[7] Andrew Eddins, Minh C. Tran, Patrick Rall, Lightcone shading for classically accelerated quantum error mitigation, arXiv:2409.04401 [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.1.0.tar.gz (420.8 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.1.0-cp310-abi3-win_amd64.whl (186.2 kB view details)

Uploaded CPython 3.10+Windows x86-64

pauli_prop-0.1.0-cp310-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (340.5 kB view details)

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

pauli_prop-0.1.0-cp310-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.whl (325.1 kB view details)

Uploaded CPython 3.10+manylinux: glibc 2.17+ ARM64

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

Uploaded CPython 3.10+macOS 11.0+ ARM64

pauli_prop-0.1.0-cp310-abi3-macosx_10_12_x86_64.whl (304.6 kB view details)

Uploaded CPython 3.10+macOS 10.12+ x86-64

File details

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

File metadata

  • Download URL: pauli_prop-0.1.0.tar.gz
  • Upload date:
  • Size: 420.8 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.1.0.tar.gz
Algorithm Hash digest
SHA256 099e929115929431b1cb35d21c5ce2bf93a4df89063aefb18d704a6f6c1d9624
MD5 6146b081aa3e91c6ed38cc7de1ac6baf
BLAKE2b-256 a06b650ccc4098737fcecac76b3bbfa704458ca867a29a4890bf63ae397fdbe5

See more details on using hashes here.

Provenance

The following attestation bundles were made for pauli_prop-0.1.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.1.0-cp310-abi3-win_amd64.whl.

File metadata

  • Download URL: pauli_prop-0.1.0-cp310-abi3-win_amd64.whl
  • Upload date:
  • Size: 186.2 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.1.0-cp310-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 f3d2bb4731e64a18f2df4848cd266d2345387620edea0b3103a63d9f5ba6c34d
MD5 6c5cc023829137119f62e94a5e004970
BLAKE2b-256 5f77395ecd533ff447657cf0fed058cb331bb82b1589d20d123ff129adfb568d

See more details on using hashes here.

Provenance

The following attestation bundles were made for pauli_prop-0.1.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.1.0-cp310-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.whl.

File metadata

File hashes

Hashes for pauli_prop-0.1.0-cp310-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 9ad5df844ff39b9e98dde75f386c096e4ea1c9ab04604d84fa42efcc6494ef96
MD5 f2f7efc4c8fbd1a61915b5113fab9820
BLAKE2b-256 4f6515783dee1b4ee1275d95902a1e603ab398ba6e33bc7cdd881994f85afb7e

See more details on using hashes here.

Provenance

The following attestation bundles were made for pauli_prop-0.1.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.1.0-cp310-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.whl.

File metadata

File hashes

Hashes for pauli_prop-0.1.0-cp310-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.whl
Algorithm Hash digest
SHA256 d50681d29cc90f2b2ea00cf181e52019d7e38b03a90f6c0590a710aefedb96a3
MD5 8241872e0e3274c1ee259de1d90692a6
BLAKE2b-256 451feb9d2edb63c8bdea5ed2cc01c7743981e2941c62016410aa57521613d614

See more details on using hashes here.

Provenance

The following attestation bundles were made for pauli_prop-0.1.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.1.0-cp310-abi3-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pauli_prop-0.1.0-cp310-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 995a515828ffc9c02f985ca9b81b89f44636790cf3d425f17bbe8c2ff706ff42
MD5 9e9653662615cdd511ecb9bf75d45be4
BLAKE2b-256 81cef484b1223617951875a46492bb1506bb23cbab3a77dcdcdf6011d9480452

See more details on using hashes here.

Provenance

The following attestation bundles were made for pauli_prop-0.1.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.1.0-cp310-abi3-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for pauli_prop-0.1.0-cp310-abi3-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 110ae812f23076d2ba7448808512960c2b7eaa5aa33fe64340c10e18bf80177d
MD5 c1a9019227527485c2e050c0bfcccdd5
BLAKE2b-256 dacbbafd51ec8e7d9a99e377079e221abccbd48f6d84e27c2312c78a50d4b636

See more details on using hashes here.

Provenance

The following attestation bundles were made for pauli_prop-0.1.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