From 3459e1ffc427fc29df32e212921ff6d4e7d6a12f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9bastien=20Villemot?= Date: Thu, 18 Nov 2010 11:21:20 +0100 Subject: [PATCH] Preprocessor: max lead/lags in the model are no longer affected by lead/lags on parameters (closes #153) --- preprocessor/DynamicModel.cc | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/preprocessor/DynamicModel.cc b/preprocessor/DynamicModel.cc index 1ac138e16..19150e4ac 100644 --- a/preprocessor/DynamicModel.cc +++ b/preprocessor/DynamicModel.cc @@ -3111,10 +3111,14 @@ DynamicModel::computeDerivIDs() int lag = it->second; SymbolType type = symbol_table.getType(it->first); - // Setting maximum and minimum lags - if (max_lead < lag) + /* Setting maximum and minimum lags. + + We don't want these to be affected by lead/lags on parameters: they + are accepted for facilitating variable flipping, but are simply + ignored. */ + if (max_lead < lag && type != eParameter) max_lead = lag; - else if (-max_lag > lag) + else if (-max_lag > lag && type != eParameter) max_lag = -lag; switch (type)