Dear Andrea,
I met with Pablo last week and we made some progress. He is going to go ahead with his algorithm taking approximation around the unconditional mean. He will present it in an intermediary report that is due at the end of this week. Please check it for typos and other mistakes when it is ready and, if possible, send him remarks by Thursday. I'm still thinking about an alternative approach around the steady sate, but I need to finish writing it before showing it to you. I would like you to start another project around the multiplication with quasi-triangular matrices. We are in the process of coding the Kalman filter in C++ hoping to accelerate this part of estimation. George is in charge of the overall project. However, when we estimate with non-stationary variables, we are forced to transform the transition equation of the state space representation and we have a transition matrix that is quasi-triangular. As it turns out, we could always used this transformation, even for models with only stationary variables. I expect some speed gain from taking into account the special structure of the transition matrix. I'm attaching a brief outline of the Kalman filte So I would like you to write a code (+, C or Fortran) for the two operations involving the transition matrix T.
1) T and P have the same dimensions. When they are large 100x100 and larger, I imagine there is a gain from using a block algorithm for T*P*T' as in BLAS/LAPACK dgemm and to optimize the size of a block so as to keep it in fast cache memory the same way as ATLAS is doing.
2) For smaller matrices, it may be better to simply inline the loops. The optimal size for both approaches should be determined empirically by testing.
3) Currently, in the Matlab code, for lage models, most of the time is spent in computing T*P*T'
For this project, I would like you to consult with Marco. He has agreed to help and JRC has much experience with Kalman filter computations.