From b756ee1819cad27e0151e76dc6f3929baf05ed18 Mon Sep 17 00:00:00 2001
From: Marco Ratto <marco.ratto@jrc.ec.europa.eu>
Date: Fri, 14 Sep 2012 17:07:38 +0200
Subject: [PATCH] Analytic derivatives: make them work for lik_init==2 as well
 (lik_init =3 and =4 still to be worked out)

---
 matlab/dsge_likelihood.m | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/matlab/dsge_likelihood.m b/matlab/dsge_likelihood.m
index c6ab3ccd90..256e04dba4 100644
--- a/matlab/dsge_likelihood.m
+++ b/matlab/dsge_likelihood.m
@@ -523,6 +523,7 @@ if analytic_derivation,
         D2P=sparse(size(D2Om,1),size(D2Om,2)); %zeros([size(T),length(xparam1),length(xparam1)]);
         jcount=0;
     end
+    if DynareOptions.lik_init==1,
     for i=1:EstimatedParameters.nvx
         k =EstimatedParameters.var_exo(i,1);
         DQ(k,k,i) = 2*sqrt(Q(k,k));
@@ -541,6 +542,7 @@ if analytic_derivation,
         end
         end
     end
+    end
     offset = EstimatedParameters.nvx;
     for i=1:EstimatedParameters.nvn
         k = EstimatedParameters.var_endo(i,1);
@@ -550,6 +552,7 @@ if analytic_derivation,
         end
     end
     offset = offset + EstimatedParameters.nvn;
+    if DynareOptions.lik_init==1,
     for j=1:EstimatedParameters.np
         dum =  lyapunov_symm(T,DT(:,:,j+offset)*Pstar*T'+T*Pstar*DT(:,:,j+offset)'+DOm(:,:,j+offset),DynareOptions.qz_criterium,DynareOptions.lyapunov_complex_threshold);
 %         kk = find(abs(dum) < 1e-12);
@@ -572,6 +575,7 @@ if analytic_derivation,
         end
         end
     end
+    end
     if analytic_derivation==1,
         analytic_deriv_info={analytic_derivation,DT,DYss,DOm,DH,DP,asy_Hess};
     else
-- 
GitLab