kalman#

Functions#

ParallelIntegratedKalmanFilter(kernel, X, y, t_states, ...)

Wrapper for parallel_integrated_kalman_filter function

make_associative_params(Phi_aug, H_aug, Q_aug, RESET, ...)

Generate the associative parameters needed for parallel Kalman.

_combine_per_pair(left, right)

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

parallel_integrated_kalman_filter(asso_params)

Jax implementation of the parallel Kalman filter algorithm

_calc_kf_predictions(Phi_aug, Q_aug, H_aug, t_states, ...)

_calc_vS(H_aug, R, m_pred, P_pred, X, y, stateid, obsid)

postprocess(Phi_aug, Q_aug, H_aug, R, X, y, t_states, ...)

Module Contents#

smolgp.solvers.integrated.parallel.kalman.ParallelIntegratedKalmanFilter(kernel, X, y, t_states, obsid, instid, stateid, R, return_v_S=False)[source]#

Wrapper for parallel_integrated_kalman_filter function

Parameters:
  • kernel – IntegratedStateSpaceModel kernel

  • X – Array of size N, data coordinates (e.g. (time, texp, instid))

  • y – Array of size (N, D), measurements at the data coordinates

  • t_states – Array of size K, sorted time coordinate of all states (exposure starts and ends)

  • obsid – Array of size N, which observation (0,…,N-1) is being made at each state k

  • instid – Array of size N, which instrument (0,…,Ninst-1) recorded observation n

  • stateid – Array of size K, 0 for exposure-start, 1 for exposure-end

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

  • return_v_S – Whether to return innovation and its covariance (for likelihood computation)

Returns:

filtered means P_filtered : filtered covariances m_predicted: predicted means P_predicted: predicted covariances

Return type:

m_filtered

smolgp.solvers.integrated.parallel.kalman.make_associative_params(Phi_aug, H_aug, Q_aug, RESET, R, X, y, t_states, obsid, instid, stateid, m0, P0)[source]#

Generate the associative parameters needed for parallel Kalman. See Eqns. 10, 11, 12 from Sarkka & Garcia-Fernandez (2020)

smolgp.solvers.integrated.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.integrated.parallel.kalman.parallel_integrated_kalman_filter(asso_params)[source]#

Jax implementation of the parallel Kalman filter algorithm for integrated measurements.

See Section 4A of Sarkka & Garcia-Fernandez (2020) for a detailed description of the algorithm and notation, and section 3.2.4 of Rubenzahl & Hattori et al. (2025) for the integrated measurement case.

Total runtime (span) complexity is O(N/T + logT) where N is the number of time steps and T is the number of parallel threads.

smolgp.solvers.integrated.parallel.kalman._calc_kf_predictions(Phi_aug, Q_aug, H_aug, t_states, b, C, m0, P0)[source]#
smolgp.solvers.integrated.parallel.kalman._calc_vS(H_aug, R, m_pred, P_pred, X, y, stateid, obsid)[source]#
smolgp.solvers.integrated.parallel.kalman.postprocess(Phi_aug, Q_aug, H_aug, R, X, y, t_states, obsid, stateid, b, C, m0, P0)[source]#