From ef797eec0f59b5e363966cd90776e76ec8c2f5f8 Mon Sep 17 00:00:00 2001 From: Johannes Pfeifer Date: Wed, 22 Nov 2017 11:05:12 +0100 Subject: [PATCH] mode_check.m: account for case where bounds are infinite and not plots are shown --- matlab/mode_check.m | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/matlab/mode_check.m b/matlab/mode_check.m index 3131f10cc..b9a24e315 100644 --- a/matlab/mode_check.m +++ b/matlab/mode_check.m @@ -111,14 +111,22 @@ for plt = 1:nbplt end end xx = x; - if x(kk)~=0 + if x(kk)~=0 || ~isinf(BoundsInfo.lb(kk)) || ~isinf(BoundsInfo.lb(kk)) l1 = max(BoundsInfo.lb(kk),(1-sign(x(kk))*ll)*x(kk)); m1 = 0; %lower bound l2 = min(BoundsInfo.ub(kk),(1+sign(x(kk))*ll)*x(kk)); %upper bound else %size info for 0 parameter is missing, use prior standard %deviation - l1 = max(BoundsInfo.lb(kk),-BayesInfo.p2(kk)); m1 = 0; %lower bound - l2 = min(BoundsInfo.ub(kk),BayesInfo.p2(kk)); %upper bound + upper_bound=BoundsInfo.lb(kk); + if isinf(upper_bound) + upper_bound=-1e-6*DynareOptions.huge_number; + end + lower_bound=BoundsInfo.ub(kk); + if isinf(lower_bound) + lower_bound=-1e-6*DynareOptions.huge_number; + end + l1 = max(lower_bound,-BayesInfo.p2(kk)); m1 = 0; %lower bound + l2 = min(upper_bound,BayesInfo.p2(kk)); %upper bound end binding_lower_bound=0; binding_upper_bound=0;