From 4cf1a358eebc059fb2d0f0a3d5436739cfa50254 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?St=C3=A9phane=20Adjemian=20=28Ry=C3=BBk=29?=
 <stepan@adjemian.eu>
Date: Wed, 1 Sep 2021 11:27:42 +0200
Subject: [PATCH] Fix growth neutrality correction in PAC/MCE equation.

---
 matlab/+pac/+mce/parameters.m | 20 +++++++++++++++-----
 preprocessor                  |  2 +-
 2 files changed, 16 insertions(+), 6 deletions(-)

diff --git a/matlab/+pac/+mce/parameters.m b/matlab/+pac/+mce/parameters.m
index 9817aca660..9c51cbfc79 100644
--- a/matlab/+pac/+mce/parameters.m
+++ b/matlab/+pac/+mce/parameters.m
@@ -11,7 +11,7 @@ function parameters(pacname)
 % SPECIAL REQUIREMENTS
 %    none
 
-% Copyright (C) 2019 Dynare Team
+% Copyright © 2019-2021 Dynare Team
 %
 % This file is part of Dynare.
 %
@@ -69,8 +69,18 @@ for e=1:number_of_pac_eq
     % Get PAC equation
     pac_equation = equations.(eqtag);
     % Get Error correction and autoregressive parameters in PAC equation
-    a = NaN(1+pac_equation.max_lag, 1);
-    a(1) = M_.params(pac_equation.ec.params);
-    a(1+(1:pac_equation.max_lag)) = M_.params(pac_equation.ar.params);
-    M_.params(pac_equation.mce.alpha) = a2alpha(a);
+    params = NaN(2+pac_equation.max_lag, 1);
+    params(1) = M_.params(pac_equation.ec.params);
+    params(1+(1:pac_equation.max_lag)) = M_.params(pac_equation.ar.params);
+    params(end) = M_.params(pacmodel.discount_index);
+    [G, alpha, beta] = buildGmatrixWithAlphaAndBeta(params);
+    M_.params(pac_equation.mce.alpha) = alpha;
+    if isfield(pacmodel, 'growth_neutrality_param_index')
+        A = [alpha; 1];
+        A_1 = polyval(A, 1.0);
+        A_b = polyval(A, beta);
+        m = length(alpha);
+        d = A_1*A_b*(iota(m, m)'*inv((eye(m)-G)*(eye(m)-G))*iota(m, m));
+        M_.params(pacmodel.growth_neutrality_param_index) = 1-sum(params(2:end-1))-d;
+    end
 end
\ No newline at end of file
diff --git a/preprocessor b/preprocessor
index 6863494db2..784dd4122a 160000
--- a/preprocessor
+++ b/preprocessor
@@ -1 +1 @@
-Subproject commit 6863494db2fe509ccb5a0f665167eca0054cc298
+Subproject commit 784dd4122afe0f68ac2d0f903c0625b9c7e50b4f
-- 
GitLab