Skip to main content

The Quaspy library for Python for simulating and post-processing various quantum algorithms, including Shor's algorithms and Ekerå–Håstad's variations of Shor's algorithms.

Project description

Quaspy

The Quaspy library for Python

The Quaspy (Quantum algorithm simulations in Python) library for Python contains modules that implement:

  • Simulators for the quantum part of Shor's order-finding algorithm [Shor94], modified as in [E24], and the classical post-processing from [E24] that recovers the order in a single run with very high success probability.

    Furthermore, these modules implement simulators for the quantum part of Seifert's variation [Seifert01] of Shor's order-finding algorithm [Shor94], as described as in [E24t] and [E21], and with the classical post-processing from [E24t] and [E21] with supporting functions from [E24] that efficiently recovers the order, or a positive integer multiple of the order, in multiple runs when making tradeoffs.

  • Simulators for factoring general integers via order-finding, and the classical post-processing from [E21b] and [E24] that factors any integer completely in a single order-finding run with very high success probability.

  • Simulators for the quantum part of Shor's algorithm for computing general discrete logarithms [Shor94], modified as in [E19p], and the classical post-processing from [E19p] that recovers the logarithm given the order in a single run with very high probability of success, and that also efficiently recovers the logarithm given the order when making tradeoffs.

  • Simulators for the quantum part of Ekerå–Håstad's algorithm for computing short discrete logarithms [EH17], modified as in [E20] and [E23p], and the classical post-processing from [E23p] that recovers the logarithm in a single run with very high probability of success. This algorithm does not require the order to be known.

    Furthermore, this module implements the classical post-processing from [E20] that efficiently recovers the logarithm in multiple runs of the quantum part of Ekerå–Håstad's algorithm when making tradeoffs.

  • Simulators for factoring RSA integers via short discrete logarithms, by using the reduction in [EH17], modified as in [E20] and [E23p], and the classical post-processing from [E23p] that factors random RSA integers in a single run of the quantum part of Ekerå–Håstad's algorithm with very high probability of success.

    Furthermore, this module implements the classical post-processing from [E20] that efficiently factors random RSA integers in multiple runs of the quantum part of Ekerå–Håstad's algorithm when making tradeoffs.

All modules, classes, methods and functions in Quaspy are documented using Python docstrings.

Note that Quaspy implements basic support for tradeoffs via a native Python implementation of LLL that is stable and resasonable performant. See also the Qunundrum repository with its suite of MPI programs that implements support for tradeoffs via LLL and BKZ as implemented by fpLLL. Note furthermore that portions of Quaspy are inherited from the Factoritall repository.

Quaspy is a work in progress, and may be subject to major changes without prior notice. Quaspy was developed for academic research purposes. It grew out of our research project in an organic manner as research questions were posed and answered. It is distributed "as is" without warranty of any kind, either expressed or implied. For further details, see the license.

Examples

For examples that illustrate how to use Quaspy, please see the examples directory in the Quaspy repository.

See also the documentation for Quaspy for help on how to use the library.

About and acknowledgments

The Quaspy library was developed by Martin Ekerå, in part at KTH, the Royal Institute of Technology, in Stockholm, Sweden. Valuable comments and advice were provided by Johan Håstad throughout the development process.

Funding and support was provided by the Swedish NCSA that is a part of the Swedish Armed Forces.

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

quaspy-1.0.0a0.tar.gz (79.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

quaspy-1.0.0a0-py3-none-any.whl (103.9 kB view details)

Uploaded Python 3

File details

Details for the file quaspy-1.0.0a0.tar.gz.

File metadata

  • Download URL: quaspy-1.0.0a0.tar.gz
  • Upload date:
  • Size: 79.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.4

File hashes

Hashes for quaspy-1.0.0a0.tar.gz
Algorithm Hash digest
SHA256 0103d054d7d187d734be7f5829ae0003da4f660bb676ddf960bc12848fdf69e9
MD5 21f8445df7d989d6a186028e5c97f94e
BLAKE2b-256 7a714e80f0aa0824e1bba54874b15d48adb15fb9f19a60709779cc71acdfaeb2

See more details on using hashes here.

File details

Details for the file quaspy-1.0.0a0-py3-none-any.whl.

File metadata

  • Download URL: quaspy-1.0.0a0-py3-none-any.whl
  • Upload date:
  • Size: 103.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.4

File hashes

Hashes for quaspy-1.0.0a0-py3-none-any.whl
Algorithm Hash digest
SHA256 139794e959c03c6a8d0fef0465231916e1fd4d03d161f27d6647bacd2d2683a3
MD5 8fc0d2940ab2e06a05381244f97ba2f9
BLAKE2b-256 066a82dcb47f6e27d6cff0af8ee6937424b5342f733b75a804a433ff04f62280

See more details on using hashes here.

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