kalman#

Functions#

ParallelKalmanFilter(kernel, X, y, R[, return_v_S])

Wrapper for the parallel Kalman filter.

make_associative_params(Phi, H, Q, R, t, y, m0, P0)

Generate the associative parameters needed for parallel Kalman

_combine_per_pair(left, right)

See Eqn. 13 & 14 of Sarkka & Garcia-Fernandez (2020) for

parallel_kalman_filter(asso_params)

Jax implementation of the parallel Kalman filter algorithm

postprocess(Phi, H, Q, R, X, t, y, b, C, m0, P0)

Module Contents#

smolgp.solvers.parallel.kalman.ParallelKalmanFilter(kernel, X, y, R, return_v_S=False)[source]#

Wrapper for the parallel Kalman filter.

Parameters:
  • kernel – StateSpaceModel kernel

  • X – data coordinates, e.g. time or (time, texp, instid)

  • y – observations, shape (N, D)

  • R – observation noise covariance, shape (N, D, D)

Returns:

b: filtered means C: filtered covariances eta: J:

Return type:

A

smolgp.solvers.parallel.kalman.make_associative_params(Phi, H, Q, R, t, y, m0, P0)[source]#

Generate the associative parameters needed for parallel Kalman

See Eqns. 10, 11, 12 from Sarkka & Garcia-Fernandez (2020)

smolgp.solvers.parallel.kalman._combine_per_pair(left, right)[source]#

See Eqn. 13 & 14 of Sarkka & Garcia-Fernandez (2020) for a the algorithm and notation.

smolgp.solvers.parallel.kalman.parallel_kalman_filter(asso_params)[source]#

Jax implementation of the parallel Kalman filter algorithm

See Section 4A of Sarkka & Garcia-Fernandez (2020) for a detailed description of the algorithm and notation.

Total runtime (span) complexity is ~O(logN) where N is the number of time steps.

smolgp.solvers.parallel.kalman.postprocess(Phi, H, Q, R, X, t, y, b, C, m0, P0)[source]#