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