From fa598b751be9e50831db6c3a91b66e2e28688956 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A9phane=20Adjemian=20=28Charybdis=29?= Date: Sat, 17 Feb 2018 21:00:23 +0100 Subject: [PATCH] Fixed prior command with optimize. Penalty was not passed correctly. --- matlab/minus_logged_prior_density.m | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/matlab/minus_logged_prior_density.m b/matlab/minus_logged_prior_density.m index 0b5b1e815..51a2839d5 100644 --- a/matlab/minus_logged_prior_density.m +++ b/matlab/minus_logged_prior_density.m @@ -34,7 +34,7 @@ fake_1 = 1; fake_2 = 1; exit_flag = 1; -info = 0; +info = zeros(4,1); %------------------------------------------------------------------------------ % 1. Get the structural parameters & define penalties @@ -46,7 +46,7 @@ if ~isequal(DynareOptions.mode_compute,1) && any(xparamsp4) fval = Inf; exit_flag = 0; info(1) = 42; - info(2) = sum((xparams(k)-p4(k)).^2); + info(4) = sum((xparams(k)-p4(k)).^2); return end @@ -75,7 +75,7 @@ if ~issquare(Q) || EstimatedParams.ncx || isfield(EstimatedParams,'calibrated_co fval = Inf; exit_flag = 0; info(1) = 43; - info(2) = penalty; + info(4) = penalty; return end if isfield(EstimatedParams,'calibrated_covariances') @@ -85,7 +85,7 @@ if ~issquare(Q) || EstimatedParams.ncx || isfield(EstimatedParams,'calibrated_co fval = Inf; exit_flag = 0; info(1) = 71; - info(2) = penalty; + info(4) = penalty; return end end @@ -100,7 +100,7 @@ if ~issquare(H) || EstimatedParams.ncn || isfield(EstimatedParams,'calibrated_co fval = Inf; exit_flag = 0; info(1) = 44; - info(2) = penalty; + info(4) = penalty; return end if isfield(EstimatedParams,'calibrated_covariances_ME') @@ -110,7 +110,7 @@ if ~issquare(H) || EstimatedParams.ncn || isfield(EstimatedParams,'calibrated_co fval = Inf; exit_flag = 0; info(1) = 72; - info(2) = penalty; + info(4) = penalty; return end end @@ -124,7 +124,6 @@ end M_ = set_all_parameters(xparams,EstimatedParams,DynareModel); [dr,info,DynareModel,DynareOptions,DynareResults] = resol(0,DynareModel,DynareOptions,DynareResults); -% Return, with endogenous penalty when possible, if dynare_resolve issues an error code (defined in resol). % Return, with endogenous penalty when possible, if dynare_resolve issues an error code (defined in resol). if info(1) if info(1) == 3 || info(1) == 4 || info(1) == 5 || info(1)==6 ||info(1) == 19 ...