fixed bug in col_id computation
parent
ed480ee1f6
commit
df793cebe5
|
@ -4807,19 +4807,20 @@ DynamicModel::writeFirstDerivativesC_csr(const string &basename, bool cuda) cons
|
||||||
int eq = it->first.first;
|
int eq = it->first.first;
|
||||||
int dynvar = it->first.second;
|
int dynvar = it->first.second;
|
||||||
int lag = getLagByDerivID(dynvar);
|
int lag = getLagByDerivID(dynvar);
|
||||||
int symb = getSymbIDByDerivID(dynvar);
|
int symb_id = getSymbIDByDerivID(dynvar);
|
||||||
SymbolType type = getTypeByDerivID(dynvar);
|
SymbolType type = getTypeByDerivID(dynvar);
|
||||||
|
int tsid = symbol_table.getTypeSpecificID(symb_id);
|
||||||
int col_id;
|
int col_id;
|
||||||
switch(type)
|
switch(type)
|
||||||
{
|
{
|
||||||
case eEndogenous:
|
case eEndogenous:
|
||||||
col_id = symb+(lag+1)*symbol_table.endo_nbr();
|
col_id = tsid+(lag+1)*symbol_table.endo_nbr();
|
||||||
break;
|
break;
|
||||||
case eExogenous:
|
case eExogenous:
|
||||||
col_id = symb+3*symbol_table.endo_nbr();
|
col_id = tsid+3*symbol_table.endo_nbr();
|
||||||
break;
|
break;
|
||||||
case eExogenousDet:
|
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;
|
break;
|
||||||
default:
|
default:
|
||||||
std::cerr << "This case shouldn't happen" << std::endl;
|
std::cerr << "This case shouldn't happen" << std::endl;
|
||||||
|
|
Loading…
Reference in New Issue