From 36853cb7615de41ca61ed92decf8bbe81ab40cba Mon Sep 17 00:00:00 2001
From: Marco Ratto <marco.ratto@jrc.ec.europa.eu>
Date: Thu, 2 Aug 2012 14:50:52 +0200
Subject: [PATCH] bug fix: the anlytic hessian was wrong with estimated stderr.

---
 matlab/dsge_likelihood.m | 14 +++++++-------
 1 file changed, 7 insertions(+), 7 deletions(-)

diff --git a/matlab/dsge_likelihood.m b/matlab/dsge_likelihood.m
index 21de390873..72ac141efc 100644
--- a/matlab/dsge_likelihood.m
+++ b/matlab/dsge_likelihood.m
@@ -586,16 +586,16 @@ if analytic_derivation,
         if full_Hess
         DTj = DT(:,:,j+offset);
         DPj = dum;
-        for i=1:j,
-            DTi = DT(:,:,i+offset);
-            DPi = DP(:,:,i+offset);
-            D2Tij = D2T(:,:,i,j);
-            D2Omij = D2Om(:,:,i,j);
+        for i=1:j+offset,
+            DTi = DT(:,:,i);
+            DPi = DP(:,:,i);
+            D2Tij = D2T(:,:,i,j+offset);
+            D2Omij = D2Om(:,:,i,j+offset);
             tmp = D2Tij*Pstar*T' + T*Pstar*D2Tij' + DTi*DPj*T' + DTj*DPi*T' + T*DPj*DTi' + T*DPi*DTj' + DTi*Pstar*DTj' + DTj*Pstar*DTi' + D2Omij;
             dum = lyapunov_symm(T,tmp,DynareOptions.qz_criterium,DynareOptions.lyapunov_complex_threshold);
             dum(abs(dum)<1.e-12) = 0;
-            D2P(:,:,i+offset,j+offset) = dum;
-            D2P(:,:,j+offset,i+offset) = dum;
+            D2P(:,:,i,j+offset) = dum;
+            D2P(:,:,j+offset,i) = dum;
         end
         end
     end
-- 
GitLab