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;