Metadata-Version: 2.4
Name: guppyalgos
Version: 0.1.0
Summary: Reusable primitives for composing abstract quantum algorithms in Guppy
Author-email: Nathan Fitzpatrick <nathan.fitzpatrick@quantinuum.com>
License-Expression: Apache-2.0
Project-URL: Repository, https://github.com/Quantinuum/guppy-algorithms
Project-URL: Documentation, https://github.com/Quantinuum/guppy-algorithms/tree/main/docs
Project-URL: Issues, https://github.com/Quantinuum/guppy-algorithms/issues
Project-URL: Changelog, https://github.com/Quantinuum/guppy-algorithms/blob/main/CHANGELOG.md
Requires-Python: <3.15,>=3.12
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: guppylang<1.1,>=1.0
Requires-Dist: pandas
Requires-Dist: numpy
Requires-Dist: scipy
Requires-Dist: zixy>=0.3.1
Provides-Extra: dev-dependencies
Requires-Dist: selene-sim>=0.2.17; extra == "dev-dependencies"
Requires-Dist: jupyter>=1.1.0; extra == "dev-dependencies"
Requires-Dist: matplotlib>=3.11.1; extra == "dev-dependencies"
Requires-Dist: pandas-stubs; extra == "dev-dependencies"
Requires-Dist: ipykernel>=7.3.0; extra == "dev-dependencies"
Requires-Dist: pytest-notebook>=0.11.0; extra == "dev-dependencies"
Requires-Dist: pytest<10,>=9.0.3; extra == "dev-dependencies"
Requires-Dist: pytest-lazy-fixtures; extra == "dev-dependencies"
Requires-Dist: sphinx==9.1.0; extra == "dev-dependencies"
Requires-Dist: pytest-xdist; extra == "dev-dependencies"
Requires-Dist: sphinx-math-dollar>=1.2.1; extra == "dev-dependencies"
Requires-Dist: sphinx-autodoc-typehints>=3.13.2; extra == "dev-dependencies"
Requires-Dist: furo>=2024.8.6; extra == "dev-dependencies"
Requires-Dist: myst-nb>=1.3.0; extra == "dev-dependencies"
Requires-Dist: ruff>=0.16.2; extra == "dev-dependencies"
Requires-Dist: ty==0.0.72; extra == "dev-dependencies"
Requires-Dist: prek; extra == "dev-dependencies"
Requires-Dist: quantinuum-sphinx>=1.11.2; extra == "dev-dependencies"
Requires-Dist: sphinx-copybutton; extra == "dev-dependencies"
Requires-Dist: sphinxcontrib-tikz>=0.4.20; extra == "dev-dependencies"
Provides-Extra: numba
Requires-Dist: numba>=0.6.7; extra == "numba"
Dynamic: license-file

# guppy-algorithms

A library of reusable primitives for composing abstract quantum algorithms,
written in [guppy](https://github.com/Quantinuum/guppylang).

The `guppyalgos` package includes quantum arithmetic, state preparation, QROM,
block encoding, Hamiltonian simulation, and phase estimation. It's reusable
components let you choose circuit implementations when assembling an algorithm.

The API is experimental before version 1.0 and may change between releases.
Pin the package version for reproducible work and review the
[changelog](CHANGELOG.md) before upgrading.

## Getting started

Requires Python 3.12 or newer and [uv](https://docs.astral.sh/uv/).
Install from a source checkout:

```sh
git clone https://github.com/Quantinuum/guppy-algorithms.git
cd guppy-algorithms
uv sync
```

Explore the [example notebooks](examples/) and the
[getting-started guide](docs/getting-started.md) for usage and compilation examples.

See [documentation](https://docs.quantinuum.com/guppy/algorithms) for user guide.

## Contributing

See [CONTRIBUTING.md](CONTRIBUTING.md) for development setup, checks, and our
`gh stack` workflow for stacked pull requests.

## Citation

If you use this library in research, please cite it using [CITATION.cff](CITATION.cff)
and include the version or commit you used.

## License

The `guppyalgos` package is licensed under the [Apache License 2.0](LICENSE).
Bundled material with a separate license retains its own license terms.
