From Batch Discrete-Time Estimation, we get alot of sparse matricies.

Here

Where * refers to non-zero blocks. This is known as a block-tridiagonal. Solvers implement efficient algs to do so underthehood, so its not too bad.

There are, however, a couple of theoretical ways to optimize this computation.

Using that, we can do a Cholesky Decomposition

Where is a block-lower-tridiagonal matrix called the Cholesky Factor.

Compute:

This makes the computation scale in linear time for the number of states.

This block-tridiagonal sparsity pattern makes possible a family of recursive solvers such as the Rauch-Tung-Striebel Smoother whose initial steps is a Kalman Filter