From df793cebe5906cbf722d2a84dbeebd0184e9b845 Mon Sep 17 00:00:00 2001 From: Michel Juillard Date: Sat, 5 Sep 2015 21:04:30 +0200 Subject: [PATCH] fixed bug in col_id computation --- preprocessor/DynamicModel.cc | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/preprocessor/DynamicModel.cc b/preprocessor/DynamicModel.cc index 0481ec73a..cdc8f22d6 100644 --- a/preprocessor/DynamicModel.cc +++ b/preprocessor/DynamicModel.cc @@ -4807,19 +4807,20 @@ DynamicModel::writeFirstDerivativesC_csr(const string &basename, bool cuda) cons int eq = it->first.first; int dynvar = it->first.second; int lag = getLagByDerivID(dynvar); - int symb = getSymbIDByDerivID(dynvar); + int symb_id = getSymbIDByDerivID(dynvar); SymbolType type = getTypeByDerivID(dynvar); + int tsid = symbol_table.getTypeSpecificID(symb_id); int col_id; switch(type) { case eEndogenous: - col_id = symb+(lag+1)*symbol_table.endo_nbr(); + col_id = tsid+(lag+1)*symbol_table.endo_nbr(); break; case eExogenous: - col_id = symb+3*symbol_table.endo_nbr(); + col_id = tsid+3*symbol_table.endo_nbr(); break; case eExogenousDet: - col_id = symb+3*symbol_table.endo_nbr()+symbol_table.exo_nbr(); + col_id = tsid+3*symbol_table.endo_nbr()+symbol_table.exo_nbr(); break; default: std::cerr << "This case shouldn't happen" << std::endl;