From f19decf297447adf558aa5a5736122b6c4e0fe29 Mon Sep 17 00:00:00 2001
From: Johannes Pfeifer <jpfeifer@gmx.de>
Date: Thu, 21 Jan 2021 19:26:53 +0100
Subject: [PATCH] non_linear_dsge_likelihood.m: consistently use
 options_.particles.pruning

Closes https://git.dynare.org/Dynare/dynare/-/issues/1756
---
 matlab/initial_estimation_checks.m  | 3 +++
 matlab/non_linear_dsge_likelihood.m | 3 +++
 2 files changed, 6 insertions(+)

diff --git a/matlab/initial_estimation_checks.m b/matlab/initial_estimation_checks.m
index 0e293e7c2f..fd1c7de98a 100644
--- a/matlab/initial_estimation_checks.m
+++ b/matlab/initial_estimation_checks.m
@@ -66,6 +66,9 @@ if DynareOptions.order>1
     if DynareOptions.order>2 && DynareOptions.particle.pruning==1
         error('initial_estimation_checks:: the particle filter with order>2 does not support pruning')
     end
+    if DynareOptions.particle.pruning~=DynareOptions.pruning
+        fprintf('initial_estimation_checks:: the pruning settings differ between the particle filter and the one used for IRFs/simulations. Make sure this is intended.\n')
+    end
 end
 
 non_zero_ME=length(EstimatedParameters.H_entries_to_check_for_positive_definiteness);
diff --git a/matlab/non_linear_dsge_likelihood.m b/matlab/non_linear_dsge_likelihood.m
index a4bef42376..b5a9ff76ff 100644
--- a/matlab/non_linear_dsge_likelihood.m
+++ b/matlab/non_linear_dsge_likelihood.m
@@ -143,10 +143,13 @@ switch DynareOptions.particle.initialization
     StateVectorMean = ReducedForm.constant(mf0);
     old_DynareOptionsperiods = DynareOptions.periods;
     DynareOptions.periods = 5000;
+    old_DynareOptionspruning =  DynareOptions.pruning;
+    DynareOptions.pruning = DynareOptions.particle.pruning;
     y_ = simult(DynareResults.steady_state, dr,Model,DynareOptions,DynareResults);
     y_ = y_(dr.order_var(state_variables_idx),2001:5000); %state_variables_idx is in dr-order while simult_ is in declaration order
     StateVectorVariance = cov(y_');
     DynareOptions.periods = old_DynareOptionsperiods;
+    DynareOptions.pruning = old_DynareOptionspruning;
     clear('old_DynareOptionsperiods','y_');
   case 3% Initial state vector covariance is a diagonal matrix (to be used
         % if model has stochastic trends).
-- 
GitLab