Metadata-Version: 2.5
Name: flanpy
Version: 0.0.1.dev0
Summary: Analytic combinatorics toolchain for algebraic generating functions in descriptional complexity.
Project-URL: Repository, https://github.com/gmcmduarte/flanpy
Project-URL: Issues, https://github.com/gmcmduarte/flanpy/issues
Author: Guilherme Duarte
License-Expression: GPL-3.0-or-later
License-File: LICENSE
Keywords: analytic combinatorics,descriptional complexity,formal languages,generating functions,singularity analysis
Classifier: Development Status :: 2 - Pre-Alpha
Classifier: Intended Audience :: Science/Research
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Programming Language :: Python :: 3.13
Classifier: Topic :: Scientific/Engineering :: Mathematics
Classifier: Typing :: Typed
Requires-Python: >=3.13
Requires-Dist: mpmath>=1.3
Requires-Dist: sympy>=1.14
Provides-Extra: dev
Requires-Dist: build>=1.2; extra == 'dev'
Requires-Dist: mypy>=2.0; extra == 'dev'
Requires-Dist: pytest>=9.0; extra == 'dev'
Requires-Dist: ruff>=0.15; extra == 'dev'
Requires-Dist: twine>=6.1; extra == 'dev'
Provides-Extra: docs
Requires-Dist: myst-nb>=1.2; extra == 'docs'
Requires-Dist: myst-parser>=4.0; extra == 'docs'
Requires-Dist: shibuya>=2025.1; extra == 'docs'
Requires-Dist: sphinx>=8.2; extra == 'docs'
Requires-Dist: sphinxcontrib-bibtex>=2.6; extra == 'docs'
Provides-Extra: fast
Requires-Dist: python-flint>=0.7; extra == 'fast'
Description-Content-Type: text/markdown

# flanpy

Analytic combinatorics for algebraic generating functions, as used in the
study of the average descriptional complexity of regular languages.

flanpy implements the toolchain of Broda, Machiavelo, Moreira and Reis:
grammar → polynomial system → elimination (Gröbner bases, resultants) →
dominant singularity → Newton–Puiseux expansion → coefficient asymptotics,
including families indexed by the alphabet size `k`. Its goal is that papers
can ship a runnable script that reproduces their results.

## Status

**Pre-alpha: no usable functionality yet.** The releases currently on PyPI
contain only the package skeleton; they exist to reserve the name. Nothing in
the pipeline above is implemented yet, and the API is not stable.

## Installation

Requires Python 3.13 or newer.

```console
pip install flanpy              # SymPy backend
pip install "flanpy[fast]"      # adds python-flint for faster polynomial arithmetic
```

From a clone, for development:

```console
pip install -e ".[dev,docs]"
```

## Licence

GPL-3.0-or-later. See [LICENSE](LICENSE). If you use flanpy in research,
please cite it (see [CITATION.cff](CITATION.cff)).
