Ramsey: do not warn if instruments are not defined in steady_state_model block
Closes: dynare#1677issue#70
parent
047b397899
commit
b58bbb8e84
|
@ -786,6 +786,11 @@ RamseyModelStatement::checkPass(ModFileStructure &mod_file_struct, WarningConsol
|
||||||
(it != options_list.num_options.end() && it->second == "true")
|
(it != options_list.num_options.end() && it->second == "true")
|
||||||
|| mod_file_struct.order_option >= 3)
|
|| mod_file_struct.order_option >= 3)
|
||||||
mod_file_struct.k_order_solver = true;
|
mod_file_struct.k_order_solver = true;
|
||||||
|
|
||||||
|
// Fill list of instruments
|
||||||
|
if (auto it = options_list.symbol_list_options.find("instruments");
|
||||||
|
it != options_list.symbol_list_options.end())
|
||||||
|
mod_file_struct.instruments = it->second;
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
|
@ -944,6 +949,11 @@ RamseyPolicyStatement::checkPass(ModFileStructure &mod_file_struct, WarningConso
|
||||||
(it != options_list.num_options.end() && it->second == "true")
|
(it != options_list.num_options.end() && it->second == "true")
|
||||||
|| mod_file_struct.order_option >= 3)
|
|| mod_file_struct.order_option >= 3)
|
||||||
mod_file_struct.k_order_solver = true;
|
mod_file_struct.k_order_solver = true;
|
||||||
|
|
||||||
|
// Fill list of instruments
|
||||||
|
if (auto it = options_list.symbol_list_options.find("instruments");
|
||||||
|
it != options_list.symbol_list_options.end())
|
||||||
|
mod_file_struct.instruments = it->second;
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
|
@ -1067,6 +1077,11 @@ DiscretionaryPolicyStatement::checkPass(ModFileStructure &mod_file_struct, Warni
|
||||||
(it != options_list.num_options.end() && it->second == "true")
|
(it != options_list.num_options.end() && it->second == "true")
|
||||||
|| mod_file_struct.order_option >= 3)
|
|| mod_file_struct.order_option >= 3)
|
||||||
mod_file_struct.k_order_solver = true;
|
mod_file_struct.k_order_solver = true;
|
||||||
|
|
||||||
|
// Fill list of instruments
|
||||||
|
if (auto it = options_list.symbol_list_options.find("instruments");
|
||||||
|
it != options_list.symbol_list_options.end())
|
||||||
|
mod_file_struct.instruments = it->second;
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
|
|
|
@ -120,12 +120,18 @@ SteadyStateModel::checkPass(ModFileStructure &mod_file_struct, WarningConsolidat
|
||||||
copy(symb_ids.begin(), symb_ids.end(), back_inserter(so_far_defined));
|
copy(symb_ids.begin(), symb_ids.end(), back_inserter(so_far_defined));
|
||||||
}
|
}
|
||||||
|
|
||||||
set<int> orig_endogs = symbol_table.getOrigEndogenous();
|
/* Check that all original endogous are defined (except the instruments of a
|
||||||
for (int orig_endog : orig_endogs)
|
Ramsey model, since the steady_state_block should give the steady state
|
||||||
|
*conditional* to those instruments) */
|
||||||
|
set<int> should_be_defined = symbol_table.getOrigEndogenous();
|
||||||
|
if (mod_file_struct.ramsey_policy_present || mod_file_struct.ramsey_model_present)
|
||||||
|
for (const auto &s : mod_file_struct.instruments.getSymbols())
|
||||||
|
should_be_defined.erase(symbol_table.getID(s));
|
||||||
|
for (int v : should_be_defined)
|
||||||
{
|
{
|
||||||
if (find(so_far_defined.begin(), so_far_defined.end(), orig_endog)
|
if (find(so_far_defined.begin(), so_far_defined.end(), v)
|
||||||
== so_far_defined.end())
|
== so_far_defined.end())
|
||||||
warnings << "WARNING: in the 'steady_state_model' block, variable '" << symbol_table.getName(orig_endog) << "' is not assigned a value" << endl;
|
warnings << "WARNING: in the 'steady_state_model' block, variable '" << symbol_table.getName(v) << "' is not assigned a value" << endl;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -129,6 +129,8 @@ public:
|
||||||
bool write_latex_steady_state_model_present{false};
|
bool write_latex_steady_state_model_present{false};
|
||||||
//! Pac growth and discount
|
//! Pac growth and discount
|
||||||
set<int> pac_params;
|
set<int> pac_params;
|
||||||
|
//! Instruments if ramsey_model, ramsey_policy or discretionary_policy is present
|
||||||
|
SymbolList instruments;
|
||||||
};
|
};
|
||||||
|
|
||||||
class Statement
|
class Statement
|
||||||
|
|
Loading…
Reference in New Issue