# Cholesky decomposition for sparse matrix

I have a matrix that is composed of small block diagonal matrices. For example:

$$M = \left[ \begin{array}{ccc} \Sigma & \Psi & \Psi \\ \Psi & \Sigma & \Psi \\ \Psi & \Psi & \Sigma \\ \end{array} \right],$$ where both $\Sigma$ and $\Psi$ are diagonal matrices.

My question is: Is there an efficient way to perform Cholesky decomposition on this? It is such a regular matrix, that I feel like one must be able to do some trick to simplify the problem, rather than use brute force method.

For 2x2, I found a simple solution shown here (http://en.wikipedia.org/wiki/Block_LU_decomposition). However, I couldn't figure out how to generalize this to n dimension.