From 4e0deb7987da7ac26a210ec52bf9ebac06272e9a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A9phane=20Adjemian=20=28Charybdis=29?= Date: Sat, 14 Dec 2019 17:30:30 +0100 Subject: [PATCH] Removed persistent variables. --- matlab/list_of_functions_to_be_cleared.m | 2 +- matlab/non_linear_dsge_likelihood.m | 27 ++++++++---------------- 2 files changed, 10 insertions(+), 19 deletions(-) diff --git a/matlab/list_of_functions_to_be_cleared.m b/matlab/list_of_functions_to_be_cleared.m index a9d182dae..0e161fdcf 100644 --- a/matlab/list_of_functions_to_be_cleared.m +++ b/matlab/list_of_functions_to_be_cleared.m @@ -1 +1 @@ -list_of_functions = {'discretionary_policy_1', 'dsge_var_likelihood', 'dyn_first_order_solver', 'dyn_waitbar', 'ep_residuals', 'evaluate_likelihood', 'prior_draw_gsa', 'identification_analysis', 'computeDLIK', 'univariate_computeDLIK', 'metropolis_draw', 'flag_implicit_skip_nan', 'moment_function', 'non_linear_dsge_likelihood', 'mr_hessian', 'masterParallel', 'auxiliary_initialization', 'auxiliary_particle_filter', 'conditional_filter_proposal', 'conditional_particle_filter', 'gaussian_filter', 'gaussian_filter_bank', 'gaussian_mixture_filter', 'gaussian_mixture_filter_bank', 'Kalman_filter', 'online_auxiliary_filter', 'sequential_importance_particle_filter', 'solve_model_for_online_filter', 'perfect_foresight_simulation', 'prior_draw', 'priordens', 'smm_objective'}; \ No newline at end of file +list_of_functions = {'discretionary_policy_1', 'dsge_var_likelihood', 'dyn_first_order_solver', 'dyn_waitbar', 'ep_residuals', 'evaluate_likelihood', 'prior_draw_gsa', 'identification_analysis', 'computeDLIK', 'univariate_computeDLIK', 'metropolis_draw', 'flag_implicit_skip_nan', 'moment_function', 'mr_hessian', 'masterParallel', 'auxiliary_initialization', 'auxiliary_particle_filter', 'conditional_filter_proposal', 'conditional_particle_filter', 'gaussian_filter', 'gaussian_filter_bank', 'gaussian_mixture_filter', 'gaussian_mixture_filter_bank', 'Kalman_filter', 'online_auxiliary_filter', 'sequential_importance_particle_filter', 'solve_model_for_online_filter', 'perfect_foresight_simulation', 'prior_draw', 'priordens', 'smm_objective'}; \ No newline at end of file diff --git a/matlab/non_linear_dsge_likelihood.m b/matlab/non_linear_dsge_likelihood.m index bf66339aa..1e6fb61b0 100644 --- a/matlab/non_linear_dsge_likelihood.m +++ b/matlab/non_linear_dsge_likelihood.m @@ -43,11 +43,6 @@ function [fval,info,exit_flag,DLIK,Hess,ys,trend_coeff,Model,DynareOptions,Bayes % You should have received a copy of the GNU General Public License % along with Dynare. If not, see . -% Declaration of the penalty as a persistent variable. -persistent init_flag -persistent restrict_variables_idx observed_variables_idx state_variables_idx mf0 mf1 -persistent sample_size number_of_state_variables number_of_observed_variables number_of_structural_innovations - % Initialization of the returned arguments. fval = []; ys = []; @@ -174,19 +169,15 @@ Y = transpose(DynareDataset.data); % 3. Initial condition of the Kalman filter %------------------------------------------------------------------------------ -% Set persistent variables (first call). -if isempty(init_flag) - mf0 = BayesInfo.mf0; - mf1 = BayesInfo.mf1; - restrict_variables_idx = dr.restrict_var_list; - observed_variables_idx = restrict_variables_idx(mf1); - state_variables_idx = restrict_variables_idx(mf0); - sample_size = size(Y,2); - number_of_state_variables = length(mf0); - number_of_observed_variables = length(mf1); - number_of_structural_innovations = length(Q); - init_flag = 1; -end +mf0 = BayesInfo.mf0; +mf1 = BayesInfo.mf1; +restrict_variables_idx = dr.restrict_var_list; +observed_variables_idx = restrict_variables_idx(mf1); +state_variables_idx = restrict_variables_idx(mf0); +sample_size = size(Y,2); +number_of_state_variables = length(mf0); +number_of_observed_variables = length(mf1); +number_of_structural_innovations = length(Q); ReducedForm.ghx = dr.ghx(restrict_variables_idx,:); ReducedForm.ghu = dr.ghu(restrict_variables_idx,:);