Metadata-Version: 2.4
Name: chebax
Version: 0.1.0.dev0
Summary: Differentiable Chebyshev approximants for special functions, aimed at JAX and GPUs
Author-email: Andres Hernandez <andres.hernandez.deml@gmail.com>
License: BSD-3-Clause
Project-URL: Repository, https://github.com/andreshernandez-spec/chebax
Requires-Python: >=3.11
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: jax>=0.4.30
Requires-Dist: numpy>=1.26
Provides-Extra: gen
Requires-Dist: mpmath>=1.3; extra == "gen"
Provides-Extra: test
Requires-Dist: pytest; extra == "test"
Dynamic: license-file

# chebax

Differentiable Chebyshev approximants for special functions, aimed at JAX and GPUs.
A build-time generator (mpmath precision) produces fixed-degree branchless polynomial
kernels with exact derivative series, including gradients with respect to function
parameters (e.g. the Bessel order). Prebuilt recipes give out-of-the-box special
functions; a bake step emits self-contained pure-JAX modules and xsf-style C++ headers.

Early development: the generic core (fit, jax evaluation, exact derivative series,
segmentation) and the first recipe are in — `besselj(v)` for any real order in
[0, 10] on x in [0, 8], with dJ/dx via jax.grad and the order gradient via
`besselj_dnu(v)`, no mpmath at use time. Tails (x > 8), more recipes, and bake
emitters are not yet. Read
`PROJECT.md` for the plan and evidence, `CLAUDE.md` for how to work here. Grown out
of a private research project (the `../bessel/` references in `PROJECT.md` point
there); the two load-bearing measurements are reproduced here in `experiments/`.
BSD-3-Clause.
