* Correction of a bug appearing in a block decomposed model when an observable variable are also a state variable
parent
2466966e3f
commit
287c0647fa
|
@ -2602,13 +2602,20 @@ DynamicModel::writeOutput(ostream &output, const string &basename, bool block_de
|
||||||
KF_index_file.open(main_name.c_str(), ios::out | ios::binary | ios::ate);
|
KF_index_file.open(main_name.c_str(), ios::out | ios::binary | ios::ate);
|
||||||
int n_obs = symbol_table.observedVariablesNbr();
|
int n_obs = symbol_table.observedVariablesNbr();
|
||||||
int n_state = state_var.size();
|
int n_state = state_var.size();
|
||||||
|
for (vector<int>::const_iterator it = state_var.begin(); it != state_var.end(); it++)
|
||||||
|
if (symbol_table.isObservedVariable(symbol_table.getID(eEndogenous, *it-1)))
|
||||||
|
n_obs--;
|
||||||
|
|
||||||
int n = n_obs + n_state;
|
int n = n_obs + n_state;
|
||||||
|
output << "M_.nobs_non_statevar = " << n_obs << ";" << endl;
|
||||||
int nb_diag = 0;
|
int nb_diag = 0;
|
||||||
//map<pair<int,int>, int>::const_iterator row_state_var_incidence_it = row_state_var_incidence.begin();
|
//map<pair<int,int>, int>::const_iterator row_state_var_incidence_it = row_state_var_incidence.begin();
|
||||||
|
|
||||||
vector<int> i_nz_state_var(n);
|
vector<int> i_nz_state_var(n);
|
||||||
unsigned int lp = symbol_table.observedVariablesNbr();
|
unsigned int lp = symbol_table.observedVariablesNbr();
|
||||||
for (int i = 0; i < n_obs; i++)
|
for (int i = 0; i < n_obs; i++)
|
||||||
i_nz_state_var[i] = n;
|
i_nz_state_var[i] = n;
|
||||||
|
unsigned int lp = n_obs;
|
||||||
|
|
||||||
for (int block = 0; block < nb_blocks; block++)
|
for (int block = 0; block < nb_blocks; block++)
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in New Issue