Theano interface

This celerite2.theano submodule provides access to the celerite2 models within the Theano framework. Of special interest, this adds support for probabilistic model building using PyMC3.

The TBD tutorial demonstrates the use of this interface, while this page provides the details for the theano.GaussianProcess class which provides all this functionality. This page does not include documentation for the term models defined in Theano, but you can refer to the Model building section of the Python interface documentation. All of those models are implemented in Theano and you can access them using something like the following:

import theano.tensor as tt
import celerite2.theano
from celerite2.theano import terms

term = terms.SHOTerm(S0=tt.dscalar(), w0=tt.dscalar(), Q=tt.dscalar())
gp = celerite2.theano.GaussianProcess(term)

The celerite2.theano.GaussianProcess class is detailed below:

PyMC3 support

This implementation comes with a custom PyMC3 Distribution that represents a multivariate normal with a celerite covariance matrix. This is used by the celerite2.theano.GaussianProcess.marginal() method documented above which adds a marginal likelihood node to a PyMC3 model.