diff --git a/matlab/ep/extended_path.m b/matlab/ep/extended_path.m index 0ad4c139bcca3e2550e1a3d03df8746b68b5f3a6..d0e4f2ba4956c213df7901239b37223a40071210 100644 --- a/matlab/ep/extended_path.m +++ b/matlab/ep/extended_path.m @@ -196,15 +196,11 @@ DynareResults.exo_simul = shocks; % Initializes some variables. t = 1; -tsimul = 1; for k = 1:replic_nbr results{k} = zeros(endo_nbr,sample_size+1); results{k}(:,1) = initial_conditions; end -exo_simul_ = zeros(maximum_lag+sample_size+maximum_lead,exo_nbr); -exo_simul_(1:size(DynareResults.exo_simul,1),1:size(DynareResults.exo_simul,2)) = DynareResults.exo_simul; - % Main loop. while (t <= sample_size) if ~mod(t,10) @@ -216,26 +212,24 @@ while (t <= sample_size) if replic_nbr > 1 && ep.parallel_1 parfor k = 1:replic_nbr exo_simul = repmat(DynareResults.exo_steady_state',periods+2,1); - exo_simul(2,:) = exo_simul_(DynareModel.maximum_lag+t,:) + shocks((t-2)*replic_nbr+k,:); - initial_conditions = results{k}(:,t-1); - [results{k}(:,t), info_convergence] = extended_path_core(ep.periods,endo_nbr,exo_nbr,positive_var_indx, ... - exo_simul,ep.init,initial_conditions,... - maximum_lag,maximum_lead,steady_state, ... - ep.verbosity,bytecode_flag,ep.stochastic.order,... - DynareModel.params,pfm,ep.stochastic.algo,ep.solve_algo,ep.stack_solve_algo,... - DynareOptions.lmmcp,DynareOptions,DynareResults); + exo_simul(2,:) = shocks((t-2)*replic_nbr+k,:); + [results{k}(:,t), info_convergence] = extended_path_core(ep.periods, endo_nbr, exo_nbr, positive_var_indx, ... + exo_simul, ep.init, results{k}(:,t-1),... + maximum_lag, maximum_lead, steady_state, ... + ep.verbosity, bytecode_flag, ep.stochastic.order, ... + DynareModel.params, pfm,ep.stochastic.algo, ep.solve_algo, ep.stack_solve_algo, ... + DynareOptions.lmmcp, DynareOptions, DynareResults); end else for k = 1:replic_nbr exo_simul = repmat(DynareResults.exo_steady_state',periods+maximum_lag+ maximum_lead,1); - exo_simul(maximum_lag+1,:) = exo_simul_(maximum_lag+t,:) + shocks((t-2)*replic_nbr+k,:); - initial_conditions = results{k}(:,t-1); - [results{k}(:,t), info_convergence] = extended_path_core(ep.periods,endo_nbr,exo_nbr,positive_var_indx, ... - exo_simul,ep.init,initial_conditions,... - maximum_lag,maximum_lead,steady_state, ... - ep.verbosity,bytecode_flag,ep.stochastic.order,... - DynareModel,pfm,ep.stochastic.algo,ep.solve_algo,ep.stack_solve_algo,... - DynareOptions.lmmcp,DynareOptions,DynareResults); + exo_simul(maximum_lag+1,:) = shocks((t-2)*replic_nbr+k,:); + [results{k}(:,t), info_convergence] = extended_path_core(ep.periods, endo_nbr, exo_nbr, positive_var_indx, ... + exo_simul, ep.init, results{k}(:,t-1),... + maximum_lag, maximum_lead, steady_state, ... + ep.verbosity, bytecode_flag, ep.stochastic.order,... + DynareModel, pfm,ep.stochastic.algo, ep.solve_algo, ep.stack_solve_algo,... + DynareOptions.lmmcp, DynareOptions, DynareResults); end end if verbosity