Metadata-Version: 2.4
Name: guppyalgos
Version: 0.2.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/guppyalgos
Project-URL: Documentation, https://docs.quantinuum.com/guppy/algorithms/
Project-URL: Issues, https://github.com/Quantinuum/guppyalgos/issues
Project-URL: Changelog, https://github.com/Quantinuum/guppyalgos/blob/main/CHANGELOG.md
Requires-Python: <3.15,>=3.12
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: guppylang>=1.1
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

# guppyalgos

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.

Any release before version 1.0.0 is experimental, and the API may change between releases.
Pin the package version for reproducible work and review the
[changelog](https://github.com/Quantinuum/guppyalgos/blob/main/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/guppyalgos.git
cd guppyalgos
uv sync
```

Explore the [example notebooks](https://github.com/Quantinuum/guppyalgos/tree/main/examples) and the
[getting-started guide](https://github.com/Quantinuum/guppyalgos/blob/main/docs/getting-started.md) for usage and compilation examples.

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

## Contributing

Contributions are welcome! See our [contributing guide](https://github.com/Quantinuum/guppyalgos/blob/main/CONTRIBUTING.md) for the
pull request process, development setup, checks, and `gh stack` workflow for
stacked pull requests.

## Citation

If you use this library in research, please cite it using [CITATION.cff](https://github.com/Quantinuum/guppyalgos/blob/main/CITATION.cff)
and include the version or commit you used.

## License

The `guppyalgos` package is licensed under the [Apache License 2.0](https://github.com/Quantinuum/guppyalgos/blob/main/LICENSE).
Bundled material with a separate license retains its own license terms.
