SHO#
- 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}\).
- Parameters:
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.
- 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
- to_general_qsm(X1: tinygp.helpers.JAXArray, X2: tinygp.helpers.JAXArray) GeneralQSM #
The generalized quasiseparable representation of this kernel