From 5fab01c534e472a31f48dd0774670e6e500922d9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9bastien=20Villemot?= Date: Wed, 21 Oct 2020 19:12:22 +0200 Subject: [PATCH] Perfect foresight: fix case where max lead/lag on exo is greater than max lead/lag on endo Bug introduced in commit e21cb1ad6b471804f48b274edce21005c99ae600 Ref. #1720 --- .../private/initialize_stacked_problem.m | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/matlab/perfect-foresight-models/private/initialize_stacked_problem.m b/matlab/perfect-foresight-models/private/initialize_stacked_problem.m index 007a5036e..1a7092854 100644 --- a/matlab/perfect-foresight-models/private/initialize_stacked_problem.m +++ b/matlab/perfect-foresight-models/private/initialize_stacked_problem.m @@ -83,15 +83,15 @@ end z = endogenousvariables(:,M.maximum_lag+(1:periods)); illi = M.lead_lag_incidence'; [i_cols,~,i_cols_j] = find(illi(:)); -if M.maximum_lag == 0 +if M.maximum_endo_lag == 0 i_cols = i_cols + M.endo_nbr; end -illi = illi(:,(1+M.maximum_lag):(1+M.maximum_lag+M.maximum_lead)); +illi = illi(:,(1+M.maximum_endo_lag):(1+M.maximum_endo_lag+M.maximum_endo_lead)); [i_cols_J1,~,i_cols_1] = find(illi(:)); -i_cols_T = nonzeros(M.lead_lag_incidence(1:(1+M.maximum_lag),:)'); +i_cols_T = nonzeros(M.lead_lag_incidence(1:(1+M.maximum_endo_lag),:)'); if periods==1 - i_cols_0 = nonzeros(M.lead_lag_incidence(1+M.maximum_lag,:)'); - i_cols_J0 = find(M.lead_lag_incidence(1+M.maximum_lag,:)'); + i_cols_0 = nonzeros(M.lead_lag_incidence(1+M.maximum_endo_lag,:)'); + i_cols_J0 = find(M.lead_lag_incidence(1+M.maximum_endo_lag,:)'); else i_cols_0 = []; i_cols_J0 = [];