Metadata-Version: 2.3
Name: rogerluo-duck
Version: 0.1.0
Summary: A software framework for the duck (operator learning) renormalization group.
Author-email: Roger-luo <rogerluo.rl18@gmail.com>
Requires-Python: >=3.12
Requires-Dist: diffrax>=0.6.0
Requires-Dist: equinox>=0.11.8
Requires-Dist: jax>=0.4.35
Requires-Dist: jaxtyping>=0.2.34
Requires-Dist: optax>=0.2.3
Requires-Dist: pydantic>=2.9.2
Requires-Dist: rich>=13.9.3
Requires-Dist: tomlkit>=0.13.2
Requires-Dist: typing-extensions>=4.12.2
Provides-Extra: gpu
Requires-Dist: jax[cuda12]>=0.4.35; extra == 'gpu'
Provides-Extra: plot
Requires-Dist: matplotlib>=3.9.2; extra == 'plot'
Provides-Extra: wandb
Requires-Dist: wandb>=0.18.5; extra == 'wandb'
Description-Content-Type: text/markdown

# Duck - a package for the duck (operator learning) renormalization group

This package is a Python implementation of the duck (operator learning) renormalization group in JAX.

> [!NOTE]
> There was an older implementation of the duck RG in [teal](https://github.com/Roger-luo/teal), which
> was used for the first 2 versions of [the duck RG theory paper](https://arxiv.org/abs/2403.03199).

> [!IMPORTANT]
> This package is still under development in alpha stage, and the API may change in the future.

## Installation

This package is available on PyPI, thus can be installed via `pip`:

```bash
pip install rogerluo-duck
```

However, we highly recommend using [uv](https://docs.astral.sh/uv/) to install the package, run
the following in your Python project.

```bash
uv add rogerluo-duck
```

## Features

- a simple **symbolic system** for defining operators
- a set of **differentiable** local **solvers** defined on top of the above symbolic system
- implementation of the **duck RG** loss function
- a set of utilities for **training** and **evaluating** the machine learning model in the duck RG

## Documentation

The documentation is available at [https://rogerluo.dev/duck/](https://rogerluo.dev/duck/).

## License

This package is licensed under the Apache License 2.0.
