solver#

Classes#

ParallelIntegratedStateSpaceSolver

A solver that uses jax.lax.associative_scan to implement

Module Contents#

class smolgp.solvers.integrated.parallel.solver.ParallelIntegratedStateSpaceSolver(kernel: smolgp.kernels.base.StateSpaceModel, X: tinygp.helpers.JAXArray, noise: tinygp.helpers.JAXArray)[source]#

Bases: equinox.Module

A solver that uses jax.lax.associative_scan to implement parallel Kalman filtering and RTS smoothing for integrated measurements

X: tinygp.helpers.JAXArray#
kernel: smolgp.kernels.base.StateSpaceModel#
noise: tinygp.helpers.JAXArray#
state_coords: tinygp.helpers.JAXArray#
_state_coords: tinygp.helpers.JAXArray#
normalization() tinygp.helpers.JAXArray[source]#
Kalman(y, return_v_S=True) Any[source]#

Wrapper for Kalman filter used with this solver

RTS(kalman_results) Any[source]#

Wrapper for RTS smoother used with this solver

condition(y, return_v_S=True) tinygp.helpers.JAXArray[source]#

Compute the Kalman predicted, filtered, and RTS smoothed means and covariances at each of the input coordinates

predict(X_test, conditioned_results) tinygp.helpers.JAXArray[source]#

Algorithm for making predictions at arbitrary coordinates X_test

Parameters:
  • X_test – The test coordinates.

  • conditioned_results – The output of self.condition()

  • observation_model – (optional) H for the test points should be a function just like self.kernel.observation_model

There are three cases:
  1. Retrodictionsmoothing from the first data point

    using the prior as the prediction

  2. Interpolationfiltering from most recent data point

    and smoothing from next future point

  3. Extrapolation : predicting from final filtered point