Simplification: use std::max when computing maxima

issue#70
Sébastien Villemot 2019-03-21 17:21:06 +01:00
parent 36fa97e5c5
commit fd6e700ec7
No known key found for this signature in database
GPG Key ID: 2CECE9350ECEBE4A
1 changed files with 19 additions and 32 deletions

View File

@ -5609,30 +5609,22 @@ DynamicModel::setLeadsLagsOrig()
int lag = dynvar.second; int lag = dynvar.second;
SymbolType type = symbol_table.getType(dynvar.first); SymbolType type = symbol_table.getType(dynvar.first);
if (max_lead_orig < lag) max_lead_orig = max(lag, max_lead_orig);
max_lead_orig= lag; max_lag_orig = max(-lag, max_lag_orig);
else if (-max_lag_orig > lag)
max_lag_orig = -lag;
switch (type) switch (type)
{ {
case SymbolType::endogenous: case SymbolType::endogenous:
if (max_endo_lead_orig < lag) max_endo_lead_orig = max(lag, max_endo_lead_orig);
max_endo_lead_orig = lag; max_endo_lag_orig = max(-lag, max_endo_lag_orig);
else if (-max_endo_lag_orig > lag)
max_endo_lag_orig = -lag;
break; break;
case SymbolType::exogenous: case SymbolType::exogenous:
if (max_exo_lead_orig < lag) max_exo_lead_orig = max(lag, max_exo_lead_orig);
max_exo_lead_orig = lag; max_exo_lag_orig = max(-lag, max_exo_lag_orig);
else if (-max_exo_lag_orig > lag)
max_exo_lag_orig = -lag;
break; break;
case SymbolType::exogenousDet: case SymbolType::exogenousDet:
if (max_exo_det_lead_orig < lag) max_exo_det_lead_orig = max(lag, max_exo_det_lead_orig);
max_exo_det_lead_orig = lag; max_exo_det_lag_orig = max(-lag, max_exo_det_lag_orig);
else if (-max_exo_det_lag_orig > lag)
max_exo_det_lag_orig = -lag;
break; break;
default: default:
break; break;
@ -5669,30 +5661,25 @@ DynamicModel::computeDerivIDs()
We don't want these to be affected by lead/lags on parameters: they We don't want these to be affected by lead/lags on parameters: they
are accepted for facilitating variable flipping, but are simply are accepted for facilitating variable flipping, but are simply
ignored. */ ignored. */
if (max_lead < lag && type != SymbolType::parameter) if (type != SymbolType::parameter)
max_lead = lag; {
else if (-max_lag > lag && type != SymbolType::parameter) max_lead = max(lag, max_lead);
max_lag = -lag; max_lag = max(-lag, max_lag);
}
switch (type) switch (type)
{ {
case SymbolType::endogenous: case SymbolType::endogenous:
if (max_endo_lead < lag) max_endo_lead = max(lag, max_endo_lead);
max_endo_lead = lag; max_endo_lag = max(-lag, max_endo_lag);
else if (-max_endo_lag > lag)
max_endo_lag = -lag;
break; break;
case SymbolType::exogenous: case SymbolType::exogenous:
if (max_exo_lead < lag) max_exo_lead = max(lag, max_exo_lead);
max_exo_lead = lag; max_exo_lag = max(-lag, max_exo_lag);
else if (-max_exo_lag > lag)
max_exo_lag = -lag;
break; break;
case SymbolType::exogenousDet: case SymbolType::exogenousDet:
if (max_exo_det_lead < lag) max_exo_det_lead = max(lag, max_exo_det_lead);
max_exo_det_lead = lag; max_exo_det_lag = max(-lag, max_exo_det_lag);
else if (-max_exo_det_lag > lag)
max_exo_det_lag = -lag;
break; break;
default: default:
break; break;