diff --git a/matlab/PosteriorIRF_core1.m b/matlab/PosteriorIRF_core1.m
index ffdbad005..6c021576f 100644
--- a/matlab/PosteriorIRF_core1.m
+++ b/matlab/PosteriorIRF_core1.m
@@ -145,11 +145,7 @@ while fpar.
+
+if options_.discretionary_policy
+ [dr,info,M_,options_,oo_] = discretionary_policy_1(options_.instruments,M_,options_,oo_);
+else
+ [dr,info,M_,options_,oo_] = resol(0,M_,options_,oo_);
+end
diff --git a/matlab/dynare_resolve.m b/matlab/dynare_resolve.m
index 8d5f1ea5c..6e4b5b217 100644
--- a/matlab/dynare_resolve.m
+++ b/matlab/dynare_resolve.m
@@ -66,11 +66,7 @@ function [A,B,ys,info,Model,DynareOptions,DynareResults] = dynare_resolve(Model,
% You should have received a copy of the GNU General Public License
% along with Dynare. If not, see .
-if DynareOptions.discretionary_policy
- [dr,info,Model,DynareOptions,DynareResults] = discretionary_policy_1(DynareOptions.instruments,Model,DynareOptions,DynareResults);
-else
- [dr,info,Model,DynareOptions,DynareResults] = resol(0,Model,DynareOptions,DynareResults);
-end
+[dr,info,Model,DynareOptions,DynareResults] =compute_decision_rules(Model,DynareOptions,DynareResults);
if info(1) > 0
A = [];
diff --git a/matlab/prior_posterior_statistics_core.m b/matlab/prior_posterior_statistics_core.m
index d1677b4d6..5d74f2baa 100644
--- a/matlab/prior_posterior_statistics_core.m
+++ b/matlab/prior_posterior_statistics_core.m
@@ -203,11 +203,7 @@ for b=fpar:B
M_ = set_all_parameters(deep,estim_params_,M_);
if run_smoother
- if options_.discretionary_policy
- [dr,info,M_,options_,oo_] = discretionary_policy_1(options_.instruments,M_,options_,oo_);
- else
- [dr,info,M_,options_,oo_] = resol(0,M_,options_,oo_);
- end
+ [dr,info,M_,options_,oo_] =compute_decision_rules(M_,options_,oo_);
[alphahat,etahat,epsilonhat,alphatilde,SteadyState,trend_coeff,aK,~,~,P,~,~,trend_addition,state_uncertainty,M_,oo_,options_,bayestopt_] = ...
DsgeSmoother(deep,gend,Y,data_index,missing_value,M_,oo_,options_,bayestopt_,estim_params_);
diff --git a/matlab/selec_posterior_draws.m b/matlab/selec_posterior_draws.m
index 57134bdee..11d9a4dad 100644
--- a/matlab/selec_posterior_draws.m
+++ b/matlab/selec_posterior_draws.m
@@ -115,11 +115,7 @@ if info
pdraws(i,1) = {x2(SampleAddress(i,4),:)};
if info-1
set_parameters(pdraws{i,1});
- if options_.discretionary_policy
- [dr,info,M_,options_,oo_] = discretionary_policy_1(options_.instruments,M_,options_,oo_);
- else
- [dr,info,M_,options_,oo_] = resol(0,M_,options_,oo_);
- end
+ [dr,info,M_,options_,oo_] =compute_decision_rules(M_,options_,oo_);
pdraws(i,2) = { dr };
end
old_mhfile = mhfile;