From 1c813a1cf91fecf29f3575f7cf730077ed2a28d0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9bastien=20Villemot?= Date: Tue, 24 Jan 2023 14:11:27 +0100 Subject: [PATCH] =?UTF-8?q?Run=20detrending=20engine=20if=20trend=20variab?= =?UTF-8?q?les=20are=20present,=20even=20if=20unused=20in=20a=20var(deflat?= =?UTF-8?q?or=3D=E2=80=A6)=20statement?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Closes: #113 --- src/DynamicModel.cc | 2 +- src/ParsingDriver.cc | 4 ++++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/src/DynamicModel.cc b/src/DynamicModel.cc index fe6bdda8..459810de 100644 --- a/src/DynamicModel.cc +++ b/src/DynamicModel.cc @@ -2879,7 +2879,7 @@ DynamicModel::computeDynJacobianCols() for (const auto &[symb_lag, deriv_id] : deriv_id_table) { int symb_id{symb_lag.first}; - int tsid{symbol_table.getTypeSpecificID(symb_id)}; + int tsid{symbol_table.getTypeSpecificID(symb_id)}; // At this point, there is no trend_var if (SymbolType type{symbol_table.getType(symb_id)}; type == SymbolType::exogenous) dyn_jacobian_cols_table[deriv_id] = ordered_dyn_endo.size() + tsid; diff --git a/src/ParsingDriver.cc b/src/ParsingDriver.cc index 0ca6faff..83192410 100644 --- a/src/ParsingDriver.cc +++ b/src/ParsingDriver.cc @@ -272,6 +272,10 @@ ParsingDriver::set_planner_discount_latex_name(string tex_name) void ParsingDriver::end_trend_var(bool log_trend, expr_t growth_factor, const vector> &symbol_list) { + /* Run detrending engine if trend variables are present, even if unused in + a var(deflator=…) statement (see #113). */ + mod_file->nonstationary_variables = true; + vector declared_trend_vars; for (auto &[name, tex_name] : symbol_list) {