From 9be7568c94ee5d0703fd0cd21c04dbae92d53ba6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A9phane=20Adjemian=20=28Charybdis=29?= Date: Fri, 17 May 2019 12:27:15 +0200 Subject: [PATCH] Bug fix in growth neutrality correction. An index was used instead of a parameter value when modifying the correction (for handling models with non optimizing agents and/or models with exogenous variables). --- matlab/+pac/+update/parameters.m | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/matlab/+pac/+update/parameters.m b/matlab/+pac/+update/parameters.m index 202d36961..9ee9fa550 100644 --- a/matlab/+pac/+update/parameters.m +++ b/matlab/+pac/+update/parameters.m @@ -167,7 +167,7 @@ for e=1:number_of_pac_eq if isnan(equations.(eqtag).optim_additive.params(i)) && equations.(eqtag).optim_additive.bgp(i) tmp = tmp + equations.(eqtag).optim_additive.scaling_factor(i); elseif ~isnan(equations.(eqtag).optim_additive.params(i)) && equations.(eqtag).optim_additive.bgp(i) - tmp = tmp + equations.(eqtag).optim_additive.params(i)*equations.(eqtag).optim_additive.scaling_factor(i); + tmp = tmp + DynareModel.params(equations.(eqtag).optim_additive.params(i))*equations.(eqtag).optim_additive.scaling_factor(i); end end cc = cc - gamma*tmp; @@ -178,7 +178,7 @@ for e=1:number_of_pac_eq if isnan(equations.(eqtag).non_optimizing_behaviour.params(i)) && equations.(eqtag).non_optimizing_behaviour.bgp(i) tmp = tmp + equations.(eqtag).non_optimizing_behaviour.scaling_factor(i); elseif ~isnan(equations.(eqtag).non_optimizing_behaviour.params(i)) && equations.(eqtag).non_optimizing_behaviour.bgp(i) - tmp = tmp + equations.(eqtag).non_optimizing_behaviour.params(i)*equations.(eqtag).non_optimizing_behaviour.scaling_factor(i); + tmp = tmp + DynareModel.params(equations.(eqtag).non_optimizing_behaviour.params(i))*equations.(eqtag).non_optimizing_behaviour.scaling_factor(i); end end cc = cc - (1.0-gamma)*tmp; @@ -189,7 +189,7 @@ for e=1:number_of_pac_eq if isnan(equations.(eqtag).additive.params(i)) && equations.(eqtag).additive.bgp(i) tmp = tmp + equations.(eqtag).additive.scaling_factor(i); elseif ~isnan(equations.(eqtag).additive.params(i)) && equations.(eqtag).additive.bgp(i) - tmp = tmp + equations.(eqtag).additive.params(i)*equations.(eqtag).additive.scaling_factor(i); + tmp = tmp + DynareModel.params(equations.(eqtag).additive.params(i))*equations.(eqtag).additive.scaling_factor(i); end end cc = cc - tmp;