From 4c82067ce4c40156e187eb465438c8078cc577cd Mon Sep 17 00:00:00 2001 From: Marco Ratto <marco.ratto@jrc.ec.europa.eu> Date: Tue, 31 Jul 2012 09:56:47 +0200 Subject: [PATCH] Fixed bug when prior_trunc==0. --- matlab/dsge_likelihood.m | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/matlab/dsge_likelihood.m b/matlab/dsge_likelihood.m index da63a35cae..21de390873 100644 --- a/matlab/dsge_likelihood.m +++ b/matlab/dsge_likelihood.m @@ -195,7 +195,12 @@ if ~isequal(DynareOptions.mode_compute,1) && any(xparam1<BayesInfo.lb) fval = penalty+sum((BayesInfo.lb(k)-xparam1(k)).^2); xtemp=xparam1; xtemp(k)=BayesInfo.lb(k); - prior_correction = max(0,-prior_penalty-priordens(xtemp,BayesInfo.pshape,BayesInfo.p6,BayesInfo.p7,BayesInfo.p3,BayesInfo.p4)); + if DynareOptions.prior_trunc, + prior1 = priordens(xtemp,BayesInfo.pshape,BayesInfo.p6,BayesInfo.p7,BayesInfo.p3,BayesInfo.p4); + else + prior1 = length(k)*log(1.e-20); + end + prior_correction = max(0,-prior_penalty-prior1); fval = fval+prior_correction; exit_flag = 0; info = 41; @@ -211,7 +216,12 @@ if ~isequal(DynareOptions.mode_compute,1) && any(xparam1>BayesInfo.ub) fval = penalty+sum((xparam1(k)-BayesInfo.ub(k)).^2); xtemp=xparam1; xtemp(k)=BayesInfo.ub(k); - prior_correction = max(0,-prior_penalty -priordens(xtemp,BayesInfo.pshape,BayesInfo.p6,BayesInfo.p7,BayesInfo.p3,BayesInfo.p4)); + if DynareOptions.prior_trunc, + prior1 = priordens(xtemp,BayesInfo.pshape,BayesInfo.p6,BayesInfo.p7,BayesInfo.p3,BayesInfo.p4); + else + prior1 = length(k)*log(1.e-20); + end + prior_correction = max(0,-prior_penalty -prior1); fval = fval+prior_correction; exit_flag = 0; info = 42; -- GitLab