Suppose we have a matrix $XX^T + D$ and we want to calculate its inverse. $D$ is a diagonal matrix. $X$ is a symmetric matrix.
We know the inverse of $X_1X_1^T, X_2X_2^T, \ldots, X_nX_n^T$, where $X_1X_1^T, X_2X_2^T, \ldots, X_nX_n^T$ are the blocks of the $XX^T$.
Is there any efficient way to calculate $(XX^T + D)^{-1}$?
Thanks a lot.