The root module for the Quaspy (Quantum algorithm simulations in Python) library for Python.
Quaspy 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 in [E24] that recovers the order in a single run with very high success probability.
-
Simulators for factoring general integers via order-finding, and the post-processing in [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 post-processing in [E19p] that recovers the logarithm given the order in a single run with very high probability of success.
-
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 post-processing in [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.
-
Simulators for factoring RSA integers via short discrete logarithms, by using the reduction in [EH17], modified as in [E20] and [E23p], and the post-processing in [E23p] that factors random RSA integers in a single run with very high probability of success.
All modules, classes, methods and functions in Quaspy are documented using Python docstrings (see https://github.com/ekera/quaspy/blob/main/docs).
Note that Quaspy does not implement support for tradeoffs in the aforementioned algorithms. Support for tradeoffs may potentially be added in the future. For the time being, see instead the Qunundrum repository (see https://www.github.com/ekera/qunundrum) with its suite of MPI programs.
Note furthermore that portions of Quaspy are inherited from the Factoritall repository (see https://www.github.com/ekera/factoritall).
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 (see https://github.com/ekera/quaspy/blob/main/LICENSE.md).
Quaspy 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.
For further details on Quaspy, see the Quaspy repository on GitHub (available at https://github.com/ekera/quaspy).
import quaspy
-
A module for factoring integers.
-
A module for finding discrete logarithms.
-
A module for mathematical utility functions and classes.
-
A module for finding orders.
-
A module for non-mathematical utility functions and classes.