Metadata-Version: 2.4
Name: smolgp
Version: 0.0.1
Summary: Gaussian Process State Space Models in Python/JAX
Project-URL: Homepage, https://github.com/smolgp-dev/smolgp
Project-URL: Issues, https://github.com/smolgp-dev/smolgp/issues
Author-email: Ryan Rubenzahl <rrubenzahl@gmail.com>, Soichiro Hattori <soichiro.hattori@gmail.com>
License: MIT
License-File: LICENSE
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: Science/Research
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3
Requires-Python: >=3.10
Requires-Dist: equinox>=0.13.1
Requires-Dist: jax>=0.6.2
Requires-Dist: tinygp>=0.3.0
Description-Content-Type: text/markdown

<p align="center">
<img width="100" height="100" alt="smolgp-logo" src="https://github.com/user-attachments/assets/66c691c9-c4d3-4253-9587-82f50adda047"/><br>
<strong>smolgp</strong><br>
<i>State Space Models for O(Linear/Log) Gaussian Processes</i>
</p>

`smolgp` is a Python/JAX extension of the [`tinygp`](https://github.com/dfm/tinygp) package that implements
1. A Kalman filter and RTS smoother as a `StateSpaceSolver` compatible with `tinygp`-like GP kernels.
2. An `IntegratedStateSpaceSolver` that can handle integrated (and possibly overlapping) measurements from mutliple instruments (see Rubenzahl and Hattori et al. in prep)
3. Parallelized versions of 1 (see [Särkkä and García-Fernández 2020](https://ieeexplore.ieee.org/document/9013038)) and 2 (see [Yaghoobi and Särkkä 2024](https://ieeexplore.ieee.org/abstract/document/10804629) and its [implementation](https://github.com/Fatemeh-Yaghoobi/Parallel-integrated-method?tab=readme-ov-file)) using `jax.lax.associative_scan`

TODO:
- benchmark plots from paper/showing full GP vs. QSM GP vs. SSM vs. parallel SSM
- doc/example useage
- tests

Possible additions
- define other kernels not in tinygp
