From 2b25ab3e8519b334f3440faab1770bc849b3e5ae Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9bastien=20Villemot?= Date: Wed, 22 Jul 2020 12:16:38 +0200 Subject: [PATCH] Fix handling of multiple PAC models --- src/DynamicModel.cc | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/DynamicModel.cc b/src/DynamicModel.cc index c159c26b..cd3dc846 100644 --- a/src/DynamicModel.cc +++ b/src/DynamicModel.cc @@ -3884,7 +3884,7 @@ DynamicModel::walkPacParameters(const string &name) set>> ar_params_and_vars; vector> non_optim_vars_params_and_constants, optim_additive_vars_params_and_constants, additive_vars_params_and_constants; - if (equation->containsPacExpectation()) + if (equation->containsPacExpectation(name)) { set> lhss; equation->arg1->collectDynamicVariables(SymbolType::endogenous, lhss); @@ -4029,7 +4029,7 @@ DynamicModel::declarePacModelConsistentExpectationEndogs(const string &name) { int i = 0; for (auto &equation : equations) - if (equation->containsPacExpectation()) + if (equation->containsPacExpectation(name)) { if (!equation_tags.exists(&equation - &equations[0], "name")) { @@ -4060,6 +4060,7 @@ DynamicModel::addPacModelConsistentExpectationEquation(const string &name, int d int neqs = 0; for (auto &it : eqtag_and_lag) { + assert(it.first.first == name); string eqtag = it.first.second; string standard_eqtag = it.second.first; int pac_max_lag_m = it.second.second + 1;