preprocessor: always write M_.state_var #637
parent
f42d833705
commit
c4ef3575f2
|
@ -2603,23 +2603,24 @@ DynamicModel::writeOutput(ostream &output, const string &basename, bool block_de
|
||||||
(julia ? "false" : "0"))
|
(julia ? "false" : "0"))
|
||||||
<< ";" << endl;
|
<< ";" << endl;
|
||||||
|
|
||||||
|
vector<int> state_var;
|
||||||
|
for (int endoID = 0; endoID < symbol_table.endo_nbr(); endoID++)
|
||||||
|
// Loop on periods
|
||||||
|
for (int lag = -max_endo_lag; lag < 0; lag++)
|
||||||
|
try
|
||||||
|
{
|
||||||
|
getDerivID(symbol_table.getID(eEndogenous, variable_reordered[endoID]), lag);
|
||||||
|
if (lag < 0 && find(state_var.begin(), state_var.end(), variable_reordered[endoID]+1) == state_var.end())
|
||||||
|
state_var.push_back(variable_reordered[endoID]+1);
|
||||||
|
}
|
||||||
|
catch (UnknownDerivIDException &e)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
//In case of sparse model, writes the block_decomposition structure of the model
|
//In case of sparse model, writes the block_decomposition structure of the model
|
||||||
if (block_decomposition)
|
if (block_decomposition)
|
||||||
{
|
{
|
||||||
vector<int> state_var, state_equ;
|
vector<int> state_equ;
|
||||||
for (int endoID = 0; endoID < symbol_table.endo_nbr(); endoID++)
|
|
||||||
// Loop on periods
|
|
||||||
for (int lag = -max_endo_lag; lag < 0; lag++)
|
|
||||||
try
|
|
||||||
{
|
|
||||||
getDerivID(symbol_table.getID(eEndogenous, variable_reordered[endoID]), lag);
|
|
||||||
if (lag < 0 && find(state_var.begin(), state_var.end(), variable_reordered[endoID]+1) == state_var.end())
|
|
||||||
state_var.push_back(variable_reordered[endoID]+1);
|
|
||||||
}
|
|
||||||
catch (UnknownDerivIDException &e)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
int count_lead_lag_incidence = 0;
|
int count_lead_lag_incidence = 0;
|
||||||
int max_lead, max_lag, max_lag_endo, max_lead_endo, max_lag_exo, max_lead_exo, max_lag_exo_det, max_lead_exo_det;
|
int max_lead, max_lag, max_lag_endo, max_lead_endo, max_lag_exo, max_lead_exo, max_lag_exo_det, max_lead_exo_det;
|
||||||
unsigned int nb_blocks = getNbBlocks();
|
unsigned int nb_blocks = getNbBlocks();
|
||||||
|
@ -3039,13 +3040,13 @@ DynamicModel::writeOutput(ostream &output, const string &basename, bool block_de
|
||||||
KF_index_file.write(reinterpret_cast<char *>(&(*it)), sizeof(index_KF));
|
KF_index_file.write(reinterpret_cast<char *>(&(*it)), sizeof(index_KF));
|
||||||
KF_index_file.close();
|
KF_index_file.close();
|
||||||
}
|
}
|
||||||
output << modstruct << "state_var = [";
|
|
||||||
|
|
||||||
for (vector<int>::const_iterator it=state_var.begin(); it != state_var.end(); it++)
|
|
||||||
output << *it << " ";
|
|
||||||
output << "];" << endl;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
output << modstruct << "state_var = [";
|
||||||
|
for (vector<int>::const_iterator it=state_var.begin(); it != state_var.end(); it++)
|
||||||
|
output << *it << " ";
|
||||||
|
output << "];" << endl;
|
||||||
|
|
||||||
// Writing initialization for some other variables
|
// Writing initialization for some other variables
|
||||||
if (!julia)
|
if (!julia)
|
||||||
output << modstruct << "exo_names_orig_ord = [1:" << symbol_table.exo_nbr() << "];" << endl;
|
output << modstruct << "exo_names_orig_ord = [1:" << symbol_table.exo_nbr() << "];" << endl;
|
||||||
|
|
Loading…
Reference in New Issue