celerite

celerite     \se.le.ʁi.te\     noun, archaic literary
A scalable method for Gaussian Process regression. From French célérité.

celerite is a library for fast and scalable Gaussian Process (GP) Regression in one dimension with implementations in C++, Python, and Julia. The Python implementation is the most stable and it exposes the most features but it relies on the C++ implementation for computational efficiency. This documentation won’t teach you the fundamentals of GP modeling but the best resource for learning about this is available for free online: Rasmussen & Williams (2006).

The celerite API is designed to be familiar to users of george and, like george, celerite is designed to efficiently evaluate the marginalized likelihood of a dataset under a GP model. This is then meant to be used alongside your favorite non-linear optimization or posterior inference library for the best results.

celerite is being actively developed in a public repository on GitHub so if you have any trouble, open an issue there.

Note

To work with the Julia package manager, the Julia implementation of the algorithm is being developed in a separate repository but the documentation is still included here.

https://img.shields.io/badge/GitHub-dfm%2Fcelerite-blue.svg?style=flat http://img.shields.io/badge/license-MIT-blue.svg?style=flat http://img.shields.io/travis/dfm/celerite/master.svg?style=flat https://ci.appveyor.com/api/projects/status/74al24yklrlrvwni?svg=true&style=flat
https://zenodo.org/badge/DOI/10.5281/zenodo.438359.svg?style=flat https://img.shields.io/badge/ArXiv-1703.09710-orange.svg?style=flat

Julia Usage

Julia Tutorials

Contributors

celerite is being developed by Dan Foreman-Mackey (@dfm) and Eric Agol (@EricAgol) with contributions from:

License & Attribution

Copyright 2016, 2017, Daniel Foreman-Mackey, Eric Agol and contributors.

The source code is made available under the terms of the MIT license.

If you make use of this code, please cite the following papers:

@article{genrp,
     author = {Sivaram Ambikasaran},
      title = {Generalized Rybicki Press algorithm},
       year = {2015},
    journal = {Numer. Linear Algebra Appl.},
     volume = {22},
     number = {6},
      pages = {1102--1114},
        doi = {10.1002/nla.2003},
        url = {https://arxiv.org/abs/1409.7852}
}

@article{celerite,
    author = {{Foreman-Mackey}, D. and {Agol}, E. and {Angus}, R. and
              {Ambikasaran}, S.},
     title = {Fast and scalable Gaussian process modeling
              with applications to astronomical time series},
      year = {2017},
   journal = {ArXiv},
       url = {https://arxiv.org/abs/1703.09710}
}

Changelog

0.2.0 (2017-05-09)

  • Switched to (~20x) faster Cholesky factorization.
  • Added O(N) simulation method using Cholesky factor.
  • Implemented gradients using automatic differentiation.
  • Changed implementation of white noise to JitterTerm instead of log_white_noise parameter.

0.1.3 (2017-03-27)

  • Prepared manuscript and docs for submission.
  • Added SingleSolver to implement the Rybicki & Press method.

0.1.2 (2017-02-23)

  • Fixed bug when pickling Model objects.
  • Added sparse solver using Eigen/SparseLU.

0.1.1 (2017-02-12)

  • Windows build support.
  • Faster solver for wide problems by linking to LAPACK.

0.1.0 (2017-02-10)

  • Initial stable release.