diff --git a/src/DynamicModel.cc b/src/DynamicModel.cc index c84750bf46de717bc1faefeffaa9612f3a684a84..fdf8c1a8ae99ce72beb2ddc4ad9c17112cc8dae4 100644 --- a/src/DynamicModel.cc +++ b/src/DynamicModel.cc @@ -2954,29 +2954,7 @@ DynamicModel::writeOutput(ostream &output, const string &basename, bool block_de outstruct = "oo_."; } - if (max_endo_lag_by_var.size() != static_cast<size_t>(symbol_table.orig_endo_nbr())) - { - cerr << "ERROR: the number of endogenous variables found in the model block" - << " is not equal to the number declared" << endl; - exit(EXIT_FAILURE); - } - - if (max_exo_lag_by_var.size() != static_cast<size_t>(symbol_table.exo_nbr())) - { - cerr << "ERROR: the number of exogenous variables found in the model block" - << " is not equal to the number declared" << endl; - exit(EXIT_FAILURE); - } - - output << modstruct << "max_endo_lag_by_var = ["; - for (const auto & it : max_endo_lag_by_var) - output << it.second << " "; - output << "];" << endl - << modstruct << "max_exo_lag_by_var = ["; - for (const auto & it : max_exo_lag_by_var) - output << it.second << " "; - output << "];" << endl - << modstruct << "orig_maximum_endo_lag = " << max_endo_lag_orig << ";" << endl + output << modstruct << "orig_maximum_endo_lag = " << max_endo_lag_orig << ";" << endl << modstruct << "orig_maximum_endo_lead = " << max_endo_lead_orig << ";" << endl << modstruct << "orig_maximum_exo_lag = " << max_exo_lag_orig << ";" << endl << modstruct << "orig_maximum_exo_lead = " << max_exo_lead_orig << ";" << endl @@ -5558,35 +5536,21 @@ DynamicModel::setLeadsLagsOrig() for (const auto & dynvar : dynvars) { int lag = dynvar.second; + SymbolType type = symbol_table.getType(dynvar.first); max_lead_orig = max(lag, max_lead_orig); max_lag_orig = max(-lag, max_lag_orig); - - switch (symbol_table.getType(dynvar.first)) + switch (type) { case SymbolType::endogenous: - { - max_endo_lead_orig = max(lag, max_endo_lead_orig); - max_endo_lag_orig = max(-lag, max_endo_lag_orig); - auto var = max_endo_lag_by_var.find(dynvar.first); - if (var != max_endo_lag_by_var.end()) - max_endo_lag_by_var[dynvar.first] = max(0, lag); - else - max_endo_lag_by_var[dynvar.first] = max(var->second, lag); - break; - } + max_endo_lead_orig = max(lag, max_endo_lead_orig); + max_endo_lag_orig = max(-lag, max_endo_lag_orig); + break; case SymbolType::exogenous: - { - max_exo_lead_orig = max(lag, max_exo_lead_orig); - max_exo_lag_orig = max(-lag, max_exo_lag_orig); - auto var = max_exo_lag_by_var.find(dynvar.first); - if (var != max_exo_lag_by_var.end()) - max_exo_lag_by_var[dynvar.first] = max(0, lag); - else - max_exo_lag_by_var[dynvar.first] = max(var->second, lag); - break; - } + max_exo_lead_orig = max(lag, max_exo_lead_orig); + max_exo_lag_orig = max(-lag, max_exo_lag_orig); + break; case SymbolType::exogenousDet: max_exo_det_lead_orig = max(lag, max_exo_det_lead_orig); max_exo_det_lag_orig = max(-lag, max_exo_det_lag_orig); diff --git a/src/DynamicModel.hh b/src/DynamicModel.hh index 1af8883f0dc66c91430326b20dd6c5eb2b73382d..f3f2a41ff8aaaef070836503fe52420351e97940 100644 --- a/src/DynamicModel.hh +++ b/src/DynamicModel.hh @@ -84,9 +84,6 @@ private: //! Maximum lag and lead over deterministic exogenous variables (positive values) of original model int max_exo_det_lag_orig{0}, max_exo_det_lead_orig{0}; - //! Max lags by symb_id - map<int, int> max_endo_lag_by_var, max_exo_lag_by_var; - //! Cross reference information map<int, ExprNode::EquationInfo> xrefs; map<pair<int, int>, set<int>> xref_param;