rts#

Functions#

RTSSmoother(kernel, X, kalman_results)

Wrapper for RTS smoother

rts_smoother(A, t, m_filtered, P_filtered, ...)

Jax implementation of the Rauch-Tung-Striebel (RTS) smoothing algorithm

rts_gains(A, t, P_filtered, P_predicted)

The y-independent smoothing gains G_k, k=0..N-2, derived from

rts_smoother_batched_mean(G_all, m_filtered_batch, ...)

Batched-mean-path replay of rts_smoother, given precomputed G_all

Module Contents#

smolgp.solvers.rts.RTSSmoother(kernel, X, kalman_results)[source]#

Wrapper for RTS smoother

Parameters:
  • kernel – StateSpaceModel kernel

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

  • kalman_results – output from Kalman filter (m_filtered, P_filtered, m_predicted, P_predicted)

Returns:

smoothed means P_smooth: smoothed covariances

Return type:

m_smooth

smolgp.solvers.rts.rts_smoother(A, t, m_filtered, P_filtered, m_predicted, P_predicted)[source]#

Jax implementation of the Rauch-Tung-Striebel (RTS) smoothing algorithm

See Theorem 8.2 (pdf page 156) in “Bayesian Filtering and Smoothing” by Simo Särkkä for detailed description of the algorithm and notation.

smolgp.solvers.rts.rts_gains(A, t, P_filtered, P_predicted)[source]#

The y-independent smoothing gains G_k, k=0..N-2, derived from P_filtered/P_predicted (from ONE prior kalman_filter call). Pointwise in k (jax.vmap, no scan needed).

Uses helpers.get_smoothing_gain (rather than the raw jnp.linalg.solve rts_smoother inlines) so a degenerate/near-singular P_predicted[k+1] is handled the same robust way the integrated smoother already relies on – a strict superset of rts_smoother’s own solve, since get_smoothing_gain falls back to its generic (plain solve) branch whenever P_predicted[k+1] is well-conditioned.

Returns:

shape (N-1, dim, dim)

Return type:

G_all

smolgp.solvers.rts.rts_smoother_batched_mean(G_all, m_filtered_batch, m_predicted_batch)[source]#

Batched-mean-path replay of rts_smoother, given precomputed G_all (rts_gains) and the BATCHED filtered/predicted means (kalman_filter_batched_mean).

Parameters:
  • G_all – (N-1, dim, dim)

  • m_filtered_batch – (M, N, dim)

  • m_predicted_batch – (M, N, dim)

Returns:

(M, N, dim)

Return type:

m_smoothed_batch