Quasisep#

class tinygp.kernels.quasisep.Quasisep[source]#

Bases: tinygp.kernels.base.Kernel

The base class for all quasiseparable kernels

Instead of directly implementing the p, q, and a elements of the tinygp.solvers.quasisep.core.StrictLowerQSM, this class implements h, Pinf, and A, where:

  • q = h,

  • p = h.T @ Pinf @ A, and

  • a = A.

This notation follows the notation from state space models for stochastic differential equations, and so far it seems like a good way to specify these models, but these details are subject to change in future versions of tinygp.

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

The transition matrix between two neighboring coordinates

abstract Pinf() tinygp.helpers.JAXArray[source]#

The stationary covariance of the process

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

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[source]#

The kernel evaluated via the quasiseparable representation

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

For quasiseparable kernels, the variance is simple to compute

abstract h(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) tinygp.solvers.quasisep.general.GeneralQSM[source]#

The generalized quasiseparable representation of this kernel

to_symm_qsm(X: tinygp.helpers.JAXArray) tinygp.solvers.quasisep.core.SymmQSM[source]#

The symmetric quasiseparable representation of this kernel