Commit 4e7806d7 authored by Sébastien Villemot's avatar Sébastien Villemot
Browse files

Merge pull request #510 from FerhatMihoubi/master

Various fixes by Ferhat
parents 6b09ef87 37876b2c
......@@ -363,7 +363,7 @@ Get_Arguments_and_global_variables(int nrhs,
}
}
*M_ = mexGetVariable("global", "M_");
if (M_ == NULL)
if (*M_ == NULL)
{
ostringstream tmp;
tmp << " in main, global variable not found: M_\n";
......@@ -371,14 +371,14 @@ Get_Arguments_and_global_variables(int nrhs,
}
/* Gets variables and parameters from global workspace of Matlab */
*oo_ = mexGetVariable("global", "oo_");
if (oo_ == NULL)
if (*oo_ == NULL)
{
ostringstream tmp;
tmp << " in main, global variable not found: oo_\n";
throw FatalExceptionHandling(tmp.str());
}
*options_ = mexGetVariable("global", "options_");
if (options_ == NULL)
if (*options_ == NULL)
{
ostringstream tmp;
tmp << " in main, global variable not found: options_\n";
......
......@@ -2411,6 +2411,12 @@ CalibSmootherStatement::CalibSmootherStatement(const SymbolList &symbol_list_arg
{
}
void
CalibSmootherStatement::checkPass(ModFileStructure &mod_file_struct, WarningConsolidation &warnings)
{
mod_file_struct.calib_smoother_present = true;
}
void
CalibSmootherStatement::writeOutput(ostream &output, const string &basename) const
{
......
......@@ -516,6 +516,7 @@ private:
public:
CalibSmootherStatement(const SymbolList &symbol_list_arg,
const OptionsList &options_list_arg);
virtual void checkPass(ModFileStructure &mod_file_struct, WarningConsolidation &warnings);
virtual void writeOutput(ostream &output, const string &basename) const;
};
......
......@@ -123,7 +123,8 @@ ModFile::checkPass()
|| mod_file_struct.estimation_present
|| mod_file_struct.osr_present
|| mod_file_struct.ramsey_policy_present
|| mod_file_struct.discretionary_policy_present;
|| mod_file_struct.discretionary_policy_present
|| mod_file_struct.calib_smoother_present;
// Allow empty model only when doing a standalone BVAR estimation
if (dynamic_model.equation_number() == 0
......@@ -318,7 +319,8 @@ ModFile::transformPass(bool nostrict)
|| mod_file_struct.estimation_present
|| mod_file_struct.osr_present
|| mod_file_struct.ramsey_policy_present
|| mod_file_struct.discretionary_policy_present)
|| mod_file_struct.discretionary_policy_present
|| mod_file_struct.calib_smoother_present)
{
// In stochastic models, create auxiliary vars for leads and lags greater than 2, on both endos and exos
dynamic_model.substituteEndoLeadGreaterThanTwo(false);
......@@ -414,8 +416,8 @@ ModFile::computingPass(bool no_tmp_terms)
// Mod file may have no equation (for example in a standalone BVAR estimation)
if (dynamic_model.equation_number() > 0)
{
if (nonstationary_variables)
trend_dynamic_model.runTrendTest(global_eval_context);
/*if (nonstationary_variables)
trend_dynamic_model.runTrendTest(global_eval_context);*/
// Compute static model and its derivatives
dynamic_model.toStatic(static_model);
......@@ -423,7 +425,8 @@ ModFile::computingPass(bool no_tmp_terms)
{
if (mod_file_struct.stoch_simul_present
|| mod_file_struct.estimation_present || mod_file_struct.osr_present
|| mod_file_struct.ramsey_policy_present || mod_file_struct.identification_present)
|| mod_file_struct.ramsey_policy_present || mod_file_struct.identification_present
|| mod_file_struct.calib_smoother_present)
static_model.set_cutoff_to_zero();
const bool static_hessian = mod_file_struct.identification_present
......@@ -437,7 +440,8 @@ ModFile::computingPass(bool no_tmp_terms)
if (mod_file_struct.simul_present || mod_file_struct.check_present
|| mod_file_struct.stoch_simul_present
|| mod_file_struct.estimation_present || mod_file_struct.osr_present
|| mod_file_struct.ramsey_policy_present || mod_file_struct.identification_present)
|| mod_file_struct.ramsey_policy_present || mod_file_struct.identification_present
|| mod_file_struct.calib_smoother_present)
{
if (mod_file_struct.simul_present)
dynamic_model.computingPass(true, false, false, false, global_eval_context, no_tmp_terms, block, use_dll, byte_code);
......@@ -445,7 +449,8 @@ ModFile::computingPass(bool no_tmp_terms)
{
if (mod_file_struct.stoch_simul_present
|| mod_file_struct.estimation_present || mod_file_struct.osr_present
|| mod_file_struct.ramsey_policy_present || mod_file_struct.identification_present)
|| mod_file_struct.ramsey_policy_present || mod_file_struct.identification_present
|| mod_file_struct.calib_smoother_present)
dynamic_model.set_cutoff_to_zero();
if (mod_file_struct.order_option < 1 || mod_file_struct.order_option > 3)
{
......
......@@ -47,7 +47,8 @@ ModFileStructure::ModFileStructure() :
dsge_var_estimated(false),
bayesian_irf_present(false),
estimation_data_statement_present(false),
last_markov_switching_chain(0)
last_markov_switching_chain(0),
calib_smoother_present(false)
{
}
......
......@@ -57,6 +57,8 @@ public:
bool planner_objective_present;
//! Whether an extended_path statement is present
bool extended_path_present;
//! Whether a calib_smoother statement is present
bool calib_smoother_present;
//! The value of the "order" option of stoch_simul, estimation, osr, ramsey_policy
//! Derivation order
/*! First initialized to zero. If user sets order option somewhere in the MOD file, it will be equal to the maximum of order options. Otherwise will default to 2 */
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment