From 42ecfa382f555a2d9eaeec792223844ad8c3d9ab Mon Sep 17 00:00:00 2001
From: Michel Juillard <michel.juillard@mjui.fr>
Date: Sun, 6 Mar 2016 21:07:50 +0100
Subject: [PATCH] fxing bug in diffuse smoother with missing values

---
 matlab/missing_DiffuseKalmanSmootherH1_Z.m | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/matlab/missing_DiffuseKalmanSmootherH1_Z.m b/matlab/missing_DiffuseKalmanSmootherH1_Z.m
index b50416072d..3bc38ea413 100644
--- a/matlab/missing_DiffuseKalmanSmootherH1_Z.m
+++ b/matlab/missing_DiffuseKalmanSmootherH1_Z.m
@@ -116,7 +116,7 @@ while rank(Pinf(:,:,t+1),diffuse_kalman_tol) && t<smpl
                         alphahat = Inf;
                         return
                     else
-                        a(:,:,t+1) = T*a(:,:,t);
+                        a(:,t+1) = T*a(:,t);
                         Pstar(:,:,t+1) = T*Pstar(:,:,t)*transpose(T)+QQ;
                         Pinf(:,:,t+1)  = T*Pinf(:,:,t)*transpose(T);
                     end
@@ -125,7 +125,7 @@ while rank(Pinf(:,:,t+1),diffuse_kalman_tol) && t<smpl
                     Kstar(:,:,t)  = Pstar(:,:,t)*ZZ'*iFstar(:,:,t);
                     Pinf(:,:,t+1)   = T*Pinf(:,:,t)*transpose(T);
                     Pstar(:,:,t+1)  = T*(Pstar(:,:,t)-Pstar(:,:,t)*ZZ'*Kstar(:,:,t)')*T'+QQ;
-                    a(:,:,t+1)        = T*(a(:,:,t)+Kstar(:,:,t)*v(:,t));
+                    a(:,t+1)        = T*(a(:,t)+Kstar(:,:,t)*v(:,t));
                 end
             end
         else
-- 
GitLab