From 74647e287282dd2d25199ae9362009648c061f04 Mon Sep 17 00:00:00 2001
From: Michel Juillard <michel.juillard@mjui.fr>
Date: Sat, 5 Sep 2015 21:04:30 +0200
Subject: [PATCH] fixed bug in col_id computation

---
 DynamicModel.cc | 9 +++++----
 1 file changed, 5 insertions(+), 4 deletions(-)

diff --git a/DynamicModel.cc b/DynamicModel.cc
index 0481ec73..cdc8f22d 100644
--- a/DynamicModel.cc
+++ b/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;
-- 
GitLab