class tinygp.kernels.quasisep.SHO(omega: JAXArray | float, quality: JAXArray | float, sigma: JAXArray | float = <factory>)[source]#

Bases: Quasisep

The damped, driven simple harmonic oscillator kernel

This form of the kernel was introduced by Foreman-Mackey et al. (2017), and it takes the form:

\[\begin{split}k(\tau) = \sigma^2\,\exp\left(-\frac{\omega\,\tau}{2\,Q}\right) \left\{\begin{array}{ll} 1 + \omega\,\tau & \mbox{for } Q = 1/2 \\ \cosh(f\,\omega\,\tau/2\,Q) + \sinh(f\,\omega\,\tau/2\,Q)/f & \mbox{for } Q < 1/2 \\ \cos(g\,\omega\,\tau/2\,Q) + \sin(g\,\omega\,\tau/2\,Q)/g & \mbox{for } Q > 1/2 \end{array}\right.\end{split}\]

for \(\tau = |x_i - x_j|\), \(f = \sqrt{1 - 4\,Q^2}\), and \(g = \sqrt{4\,Q^2 - 1}\).

  • omega – The parameter \(\omega\).

  • quality – The parameter \(Q\).

  • sigma (optional) – The parameter \(\sigma\). Defaults to a value of 1. Specifying the explicit value here provides a slight performance boost compared to independently multiplying the kernel with a prefactor.

coord_to_sortable(X: tinygp.helpers.JAXArray) tinygp.helpers.JAXArray#

A helper function used to convert coordinates to sortable 1-D values

By default, this is the identity, but in cases where X is structured (e.g. multivariate inputs), this can be used to appropriately unwrap that structure.

design_matrix() tinygp.helpers.JAXArray[source]#

The design matrix for the process

evaluate(X1: tinygp.helpers.JAXArray, X2: tinygp.helpers.JAXArray) tinygp.helpers.JAXArray#

The kernel evaluated via the quasiseparable representation

evaluate_diag(X: tinygp.helpers.JAXArray) tinygp.helpers.JAXArray#

For quasiseparable kernels, the variance is simple to compute

observation_model(X: tinygp.helpers.JAXArray) tinygp.helpers.JAXArray[source]#

The observation model for the process

stationary_covariance() tinygp.helpers.JAXArray[source]#

The stationary covariance of the process

to_general_qsm(X1: tinygp.helpers.JAXArray, X2: tinygp.helpers.JAXArray) GeneralQSM#

The generalized quasiseparable representation of this kernel

to_symm_qsm(X: tinygp.helpers.JAXArray) SymmQSM#

The symmetric quasiseparable representation of this kernel

transition_matrix(X1: tinygp.helpers.JAXArray, X2: tinygp.helpers.JAXArray) tinygp.helpers.JAXArray[source]#

The transition matrix between two coordinates