smolgp#

State Space Models for O(Linear/Log) Gaussian Processes

docs Tests codecov Journal arXiv DOI

smolgp is a Python/JAX standalone extension of the tinygp package that uses the state space representation of Gaussian Process to achieve substantial performance boosts. Like tinygp it is built on top of jax and so can utilize just-in-time compliation, automatic differentiation, and GPU-accelerated linear algebra. It can even be parallelized for a further performance boost.

To get started, check out the User Guide and then the Quickstart Guide to hit the ground running. There are also many useful Tutorials with example usage, including An Introduction to State Space Gaussian Processes for those interested in the framework that powers smolgp. For all the nitty-gritty details, see the full API documentation.

If you use smolgp in your research, please see Citing smolgp.

When should I use smolgp instead of tinygp ?

Scalable non-quasiseparable kernels
If you want scalable (O(N) or better) performance for GP kernels which do not have quasiseparable representations but can be approximated by a state space model, such as the quasiperiodic kernel (see See Defining Kernels).

Integrated measurements
If your measurements are integrated over finite time intervals that are appreciable compared to the variability timescale of the GP. smolgp correctly accounts for the integrated covariance while maintaining scalable performance. See Integrated Measurements for more details.

Overlapping datasets
If you are jointly modeling integrated data from multiple instruments where exposures overlap with one another, smolgp naturally accounts for the covariances during the overlap by construction, preserving scalability.

If you find any bugs, please raise them on the GitHub issues page.

Table of contents#

Authors & license#

Copyright 2025, 2026 Simons Foundation, Inc.

smolgp is built and maintained by Ryan Rubenzahl and Soichiro Hattori, but contributions from all via the Issue Tracker are welcome. Licensed under the MIT license (see LICENSE).