From 35cd407f5fcfe47b83fcc64c8bf050007cc73750 Mon Sep 17 00:00:00 2001 From: Houtan Bastani Date: Thu, 28 May 2015 11:42:12 +0200 Subject: [PATCH] preprocessor: add minimal_workspace option to dynare statement, #946 --- ComputingTasks.cc | 130 ++++++++++++++++++------------------- ComputingTasks.hh | 130 ++++++++++++++++++------------------- DynareMain.cc | 14 ++-- DynareMain2.cc | 6 +- ModFile.cc | 10 ++- ModFile.hh | 3 +- NumericalInitialization.cc | 23 +++---- NumericalInitialization.hh | 20 +++--- Shocks.cc | 12 ++-- Shocks.hh | 12 ++-- SigmaeInitialization.cc | 4 +- SigmaeInitialization.hh | 4 +- Statement.cc | 4 +- Statement.hh | 6 +- 14 files changed, 194 insertions(+), 184 deletions(-) diff --git a/ComputingTasks.cc b/ComputingTasks.cc index 76ed6faa..35bda998 100644 --- a/ComputingTasks.cc +++ b/ComputingTasks.cc @@ -44,7 +44,7 @@ SteadyStatement::checkPass(ModFileStructure &mod_file_struct, WarningConsolidati } void -SteadyStatement::writeOutput(ostream &output, const string &basename) const +SteadyStatement::writeOutput(ostream &output, const string &basename, bool minimal_workspace) const { options_list.writeOutput(output); output << "steady;" << endl; @@ -56,7 +56,7 @@ CheckStatement::CheckStatement(const OptionsList &options_list_arg) : } void -CheckStatement::writeOutput(ostream &output, const string &basename) const +CheckStatement::writeOutput(ostream &output, const string &basename, bool minimal_workspace) const { options_list.writeOutput(output); output << "oo_.dr.eigval = check(M_,options_,oo_);" << endl; @@ -80,7 +80,7 @@ ModelInfoStatement::checkPass(ModFileStructure &mod_file_struct, WarningConsolid } void -ModelInfoStatement::writeOutput(ostream &output, const string &basename) const +ModelInfoStatement::writeOutput(ostream &output, const string &basename, bool minimal_workspace) const { options_list.writeOutput(output); output << "model_info();" << endl; @@ -98,7 +98,7 @@ SimulStatement::checkPass(ModFileStructure &mod_file_struct, WarningConsolidatio } void -SimulStatement::writeOutput(ostream &output, const string &basename) const +SimulStatement::writeOutput(ostream &output, const string &basename, bool minimal_workspace) const { options_list.writeOutput(output); output << "perfect_foresight_setup;" << endl @@ -111,7 +111,7 @@ PerfectForesightSetupStatement::PerfectForesightSetupStatement(const OptionsList } void -PerfectForesightSetupStatement::writeOutput(ostream &output, const string &basename) const +PerfectForesightSetupStatement::writeOutput(ostream &output, const string &basename, bool minimal_workspace) const { options_list.writeOutput(output); output << "perfect_foresight_setup;" << endl; @@ -129,7 +129,7 @@ PerfectForesightSolverStatement::checkPass(ModFileStructure &mod_file_struct, Wa } void -PerfectForesightSolverStatement::writeOutput(ostream &output, const string &basename) const +PerfectForesightSolverStatement::writeOutput(ostream &output, const string &basename, bool minimal_workspace) const { options_list.writeOutput(output); output << "perfect_foresight_solver;" << endl; @@ -166,7 +166,7 @@ StochSimulStatement::checkPass(ModFileStructure &mod_file_struct, WarningConsoli } void -StochSimulStatement::writeOutput(ostream &output, const string &basename) const +StochSimulStatement::writeOutput(ostream &output, const string &basename, bool minimal_workspace) const { // Ensure that order 3 implies k_order (#844) OptionsList::num_options_t::const_iterator it = options_list.num_options.find("order"); @@ -188,7 +188,7 @@ ForecastStatement::ForecastStatement(const SymbolList &symbol_list_arg, } void -ForecastStatement::writeOutput(ostream &output, const string &basename) const +ForecastStatement::writeOutput(ostream &output, const string &basename, bool minimal_workspace) const { options_list.writeOutput(output); symbol_list.writeOutput("var_list_", output); @@ -235,7 +235,7 @@ RamseyModelStatement::checkPass(ModFileStructure &mod_file_struct, WarningConsol } void -RamseyModelStatement::writeOutput(ostream &output, const string &basename) const +RamseyModelStatement::writeOutput(ostream &output, const string &basename, bool minimal_workspace) const { // options_.ramsey_policy indicates that a Ramsey model is present in the *.mod file // this affects the computation of the steady state that uses a special algorithm @@ -296,7 +296,7 @@ RamseyPolicyStatement::checkPass(ModFileStructure &mod_file_struct, WarningConso } void -RamseyPolicyStatement::writeOutput(ostream &output, const string &basename) const +RamseyPolicyStatement::writeOutput(ostream &output, const string &basename, bool minimal_workspace) const { // Ensure that order 3 implies k_order (#844) OptionsList::num_options_t::const_iterator it = options_list.num_options.find("order"); @@ -356,7 +356,7 @@ DiscretionaryPolicyStatement::checkPass(ModFileStructure &mod_file_struct, Warni } void -DiscretionaryPolicyStatement::writeOutput(ostream &output, const string &basename) const +DiscretionaryPolicyStatement::writeOutput(ostream &output, const string &basename, bool minimal_workspace) const { // Ensure that order 3 implies k_order (#844) OptionsList::num_options_t::const_iterator it = options_list.num_options.find("order"); @@ -462,7 +462,7 @@ EstimationStatement::checkPass(ModFileStructure &mod_file_struct, WarningConsoli } void -EstimationStatement::writeOutput(ostream &output, const string &basename) const +EstimationStatement::writeOutput(ostream &output, const string &basename, bool minimal_workspace) const { options_list.writeOutput(output); @@ -497,7 +497,7 @@ DynareSensitivityStatement::checkPass(ModFileStructure &mod_file_struct, Warning } void -DynareSensitivityStatement::writeOutput(ostream &output, const string &basename) const +DynareSensitivityStatement::writeOutput(ostream &output, const string &basename, bool minimal_workspace) const { options_list.writeOutput(output, "options_gsa"); @@ -524,7 +524,7 @@ RplotStatement::RplotStatement(const SymbolList &symbol_list_arg) : } void -RplotStatement::writeOutput(ostream &output, const string &basename) const +RplotStatement::writeOutput(ostream &output, const string &basename, bool minimal_workspace) const { symbol_list.writeOutput("var_list_", output); output << "rplot(var_list_);" << endl; @@ -535,7 +535,7 @@ UnitRootVarsStatement::UnitRootVarsStatement(void) } void -UnitRootVarsStatement::writeOutput(ostream &output, const string &basename) const +UnitRootVarsStatement::writeOutput(ostream &output, const string &basename, bool minimal_workspace) const { output << "options_.diffuse_filter = 1;" << endl << "options_.steadystate.nocheck = 1;" << endl; @@ -546,7 +546,7 @@ PeriodsStatement::PeriodsStatement(int periods_arg) : periods(periods_arg) } void -PeriodsStatement::writeOutput(ostream &output, const string &basename) const +PeriodsStatement::writeOutput(ostream &output, const string &basename, bool minimal_workspace) const { output << "options_.periods = " << periods << ";" << endl; } @@ -560,7 +560,7 @@ DsampleStatement::DsampleStatement(int val1_arg, int val2_arg) : val1(val1_arg), } void -DsampleStatement::writeOutput(ostream &output, const string &basename) const +DsampleStatement::writeOutput(ostream &output, const string &basename, bool minimal_workspace) const { if (val2 < 0) output << "dsample(" << val1 << ");" << endl; @@ -640,7 +640,7 @@ EstimatedParamsStatement::checkPass(ModFileStructure &mod_file_struct, WarningCo } void -EstimatedParamsStatement::writeOutput(ostream &output, const string &basename) const +EstimatedParamsStatement::writeOutput(ostream &output, const string &basename, bool minimal_workspace) const { output << "global estim_params_" << endl << "estim_params_.var_exo = [];" << endl @@ -715,7 +715,7 @@ EstimatedParamsInitStatement::checkPass(ModFileStructure &mod_file_struct, Warni } void -EstimatedParamsInitStatement::writeOutput(ostream &output, const string &basename) const +EstimatedParamsInitStatement::writeOutput(ostream &output, const string &basename, bool minimal_workspace) const { if (use_calibration) output << "options_.use_calibration_initialization = 1;" << endl; @@ -781,7 +781,7 @@ EstimatedParamsBoundsStatement::EstimatedParamsBoundsStatement(const vector::const_iterator it; @@ -869,7 +869,7 @@ ObservationTrendsStatement::ObservationTrendsStatement(const trend_elements_t &t } void -ObservationTrendsStatement::writeOutput(ostream &output, const string &basename) const +ObservationTrendsStatement::writeOutput(ostream &output, const string &basename, bool minimal_workspace) const { output << "options_.trend_coeff_ = {};" << endl; @@ -902,7 +902,7 @@ OsrParamsStatement::checkPass(ModFileStructure &mod_file_struct, WarningConsolid } void -OsrParamsStatement::writeOutput(ostream &output, const string &basename) const +OsrParamsStatement::writeOutput(ostream &output, const string &basename, bool minimal_workspace) const { symbol_list.writeOutput("osr_params_", output); } @@ -937,7 +937,7 @@ OsrStatement::checkPass(ModFileStructure &mod_file_struct, WarningConsolidation } void -OsrStatement::writeOutput(ostream &output, const string &basename) const +OsrStatement::writeOutput(ostream &output, const string &basename, bool minimal_workspace) const { // Ensure that order 3 implies k_order (#844) OptionsList::num_options_t::const_iterator it = options_list.num_options.find("order"); @@ -967,7 +967,7 @@ OptimWeightsStatement::checkPass(ModFileStructure &mod_file_struct, WarningConso } void -OptimWeightsStatement::writeOutput(ostream &output, const string &basename) const +OptimWeightsStatement::writeOutput(ostream &output, const string &basename, bool minimal_workspace) const { output << "%" << endl << "% OPTIM_WEIGHTS" << endl @@ -1010,7 +1010,7 @@ DynaSaveStatement::DynaSaveStatement(const SymbolList &symbol_list_arg, } void -DynaSaveStatement::writeOutput(ostream &output, const string &basename) const +DynaSaveStatement::writeOutput(ostream &output, const string &basename, bool minimal_workspace) const { symbol_list.writeOutput("var_list_", output); output << "dynasave('" << filename @@ -1025,7 +1025,7 @@ DynaTypeStatement::DynaTypeStatement(const SymbolList &symbol_list_arg, } void -DynaTypeStatement::writeOutput(ostream &output, const string &basename) const +DynaTypeStatement::writeOutput(ostream &output, const string &basename, bool minimal_workspace) const { symbol_list.writeOutput("var_list_", output); output << "dynatype('" << filename @@ -1040,7 +1040,7 @@ ModelComparisonStatement::ModelComparisonStatement(const filename_list_t &filena } void -ModelComparisonStatement::writeOutput(ostream &output, const string &basename) const +ModelComparisonStatement::writeOutput(ostream &output, const string &basename, bool minimal_workspace) const { options_list.writeOutput(output); @@ -1086,7 +1086,7 @@ PlannerObjectiveStatement::computingPass() } void -PlannerObjectiveStatement::writeOutput(ostream &output, const string &basename) const +PlannerObjectiveStatement::writeOutput(ostream &output, const string &basename, bool minimal_workspace) const { model_tree->writeStaticFile(basename + "_objective", false, false, false); } @@ -1104,7 +1104,7 @@ BVARDensityStatement::checkPass(ModFileStructure &mod_file_struct, WarningConsol } void -BVARDensityStatement::writeOutput(ostream &output, const string &basename) const +BVARDensityStatement::writeOutput(ostream &output, const string &basename, bool minimal_workspace) const { options_list.writeOutput(output); output << "bvar_density(" << maxnlags << ");" << endl; @@ -1123,7 +1123,7 @@ BVARForecastStatement::checkPass(ModFileStructure &mod_file_struct, WarningConso } void -BVARForecastStatement::writeOutput(ostream &output, const string &basename) const +BVARForecastStatement::writeOutput(ostream &output, const string &basename, bool minimal_workspace) const { options_list.writeOutput(output); output << "bvar_forecast(" << nlags << ");" << endl; @@ -1141,7 +1141,7 @@ SBVARStatement::checkPass(ModFileStructure &mod_file_struct, WarningConsolidatio } void -SBVARStatement::writeOutput(ostream &output, const string &basename) const +SBVARStatement::writeOutput(ostream &output, const string &basename, bool minimal_workspace) const { options_list.writeOutput(output); output << "sbvar(M_,options_);" << endl; @@ -1168,7 +1168,7 @@ MSSBVAREstimationStatement::checkPass(ModFileStructure &mod_file_struct, Warning } void -MSSBVAREstimationStatement::writeOutput(ostream &output, const string &basename) const +MSSBVAREstimationStatement::writeOutput(ostream &output, const string &basename, bool minimal_workspace) const { output << "options_ = initialize_ms_sbvar_options(M_, options_);" << endl << "options_.datafile = '';" << endl; @@ -1188,7 +1188,7 @@ MSSBVARSimulationStatement::checkPass(ModFileStructure &mod_file_struct, Warning } void -MSSBVARSimulationStatement::writeOutput(ostream &output, const string &basename) const +MSSBVARSimulationStatement::writeOutput(ostream &output, const string &basename, bool minimal_workspace) const { output << "options_ = initialize_ms_sbvar_options(M_, options_);" << endl; options_list.writeOutput(output); @@ -1216,7 +1216,7 @@ MSSBVARComputeMDDStatement::checkPass(ModFileStructure &mod_file_struct, Warning } void -MSSBVARComputeMDDStatement::writeOutput(ostream &output, const string &basename) const +MSSBVARComputeMDDStatement::writeOutput(ostream &output, const string &basename, bool minimal_workspace) const { output << "options_ = initialize_ms_sbvar_options(M_, options_);" << endl; options_list.writeOutput(output); @@ -1243,7 +1243,7 @@ MSSBVARComputeProbabilitiesStatement::checkPass(ModFileStructure &mod_file_struc } void -MSSBVARComputeProbabilitiesStatement::writeOutput(ostream &output, const string &basename) const +MSSBVARComputeProbabilitiesStatement::writeOutput(ostream &output, const string &basename, bool minimal_workspace) const { output << "options_ = initialize_ms_sbvar_options(M_, options_);" << endl; options_list.writeOutput(output); @@ -1289,7 +1289,7 @@ MSSBVARIrfStatement::checkPass(ModFileStructure &mod_file_struct, WarningConsoli } void -MSSBVARIrfStatement::writeOutput(ostream &output, const string &basename) const +MSSBVARIrfStatement::writeOutput(ostream &output, const string &basename, bool minimal_workspace) const { output << "options_ = initialize_ms_sbvar_options(M_, options_);" << endl; symbol_list.writeOutput("var_list_", output); @@ -1316,7 +1316,7 @@ MSSBVARForecastStatement::checkPass(ModFileStructure &mod_file_struct, WarningCo } void -MSSBVARForecastStatement::writeOutput(ostream &output, const string &basename) const +MSSBVARForecastStatement::writeOutput(ostream &output, const string &basename, bool minimal_workspace) const { output << "options_ = initialize_ms_sbvar_options(M_, options_);" << endl; options_list.writeOutput(output); @@ -1360,7 +1360,7 @@ MSSBVARVarianceDecompositionStatement::checkPass(ModFileStructure &mod_file_stru } void -MSSBVARVarianceDecompositionStatement::writeOutput(ostream &output, const string &basename) const +MSSBVARVarianceDecompositionStatement::writeOutput(ostream &output, const string &basename, bool minimal_workspace) const { output << "options_ = initialize_ms_sbvar_options(M_, options_);" << endl; options_list.writeOutput(output); @@ -1385,7 +1385,7 @@ IdentificationStatement::checkPass(ModFileStructure &mod_file_struct, WarningCon } void -IdentificationStatement::writeOutput(ostream &output, const string &basename) const +IdentificationStatement::writeOutput(ostream &output, const string &basename, bool minimal_workspace) const { options_list.writeOutput(output, "options_ident"); @@ -1412,7 +1412,7 @@ WriteLatexDynamicModelStatement::WriteLatexDynamicModelStatement(const DynamicMo } void -WriteLatexDynamicModelStatement::writeOutput(ostream &output, const string &basename) const +WriteLatexDynamicModelStatement::writeOutput(ostream &output, const string &basename, bool minimal_workspace) const { dynamic_model.writeLatexFile(basename); } @@ -1423,7 +1423,7 @@ WriteLatexStaticModelStatement::WriteLatexStaticModelStatement(const StaticModel } void -WriteLatexStaticModelStatement::writeOutput(ostream &output, const string &basename) const +WriteLatexStaticModelStatement::writeOutput(ostream &output, const string &basename, bool minimal_workspace) const { static_model.writeLatexFile(basename); } @@ -1434,7 +1434,7 @@ WriteLatexOriginalModelStatement::WriteLatexOriginalModelStatement(const Dynamic } void -WriteLatexOriginalModelStatement::writeOutput(ostream &output, const string &basename) const +WriteLatexOriginalModelStatement::writeOutput(ostream &output, const string &basename, bool minimal_workspace) const { original_model.writeLatexOriginalFile(basename); } @@ -1447,7 +1447,7 @@ ShockDecompositionStatement::ShockDecompositionStatement(const SymbolList &symbo } void -ShockDecompositionStatement::writeOutput(ostream &output, const string &basename) const +ShockDecompositionStatement::writeOutput(ostream &output, const string &basename, bool minimal_workspace) const { options_list.writeOutput(output); symbol_list.writeOutput("var_list_", output); @@ -1460,7 +1460,7 @@ ConditionalForecastStatement::ConditionalForecastStatement(const OptionsList &op } void -ConditionalForecastStatement::writeOutput(ostream &output, const string &basename) const +ConditionalForecastStatement::writeOutput(ostream &output, const string &basename, bool minimal_workspace) const { options_list.writeOutput(output, "options_cond_fcst_"); output << "imcforecast(constrained_paths_, constrained_vars_, options_cond_fcst_);" << endl; @@ -1473,7 +1473,7 @@ PlotConditionalForecastStatement::PlotConditionalForecastStatement(int periods_a } void -PlotConditionalForecastStatement::writeOutput(ostream &output, const string &basename) const +PlotConditionalForecastStatement::writeOutput(ostream &output, const string &basename, bool minimal_workspace) const { symbol_list.writeOutput("var_list_", output); if (periods == -1) @@ -1526,7 +1526,7 @@ SvarIdentificationStatement::checkPass(ModFileStructure &mod_file_struct, Warnin } void -SvarIdentificationStatement::writeOutput(ostream &output, const string &basename) const +SvarIdentificationStatement::writeOutput(ostream &output, const string &basename, bool minimal_workspace) const { assert(!(upper_cholesky_present && lower_cholesky_present)); output << "%" << endl @@ -1743,7 +1743,7 @@ MarkovSwitchingStatement::checkPass(ModFileStructure &mod_file_struct, WarningCo } void -MarkovSwitchingStatement::writeOutput(ostream &output, const string &basename) const +MarkovSwitchingStatement::writeOutput(ostream &output, const string &basename, bool minimal_workspace) const { bool isDurationAVec = true; string infStr("Inf"); @@ -1852,7 +1852,7 @@ SvarStatement::checkPass(ModFileStructure &mod_file_struct, WarningConsolidation } void -SvarStatement::writeOutput(ostream &output, const string &basename) const +SvarStatement::writeOutput(ostream &output, const string &basename, bool minimal_workspace) const { OptionsList::num_options_t::const_iterator it0, it1, it2; OptionsList::vec_int_options_t::const_iterator itv; @@ -1898,7 +1898,7 @@ SetTimeStatement::SetTimeStatement(const OptionsList &options_list_arg) : } void -SetTimeStatement::writeOutput(ostream &output, const string &basename) const +SetTimeStatement::writeOutput(ostream &output, const string &basename, bool minimal_workspace) const { options_list.writeOutput(output); } @@ -1937,7 +1937,7 @@ EstimationDataStatement::checkPass(ModFileStructure &mod_file_struct, WarningCon } void -EstimationDataStatement::writeOutput(ostream &output, const string &basename) const +EstimationDataStatement::writeOutput(ostream &output, const string &basename, bool minimal_workspace) const { options_list.writeOutput(output, "options_.dataset"); } @@ -1959,7 +1959,7 @@ SubsamplesStatement::checkPass(ModFileStructure &mod_file_struct, WarningConsoli } void -SubsamplesStatement::writeOutput(ostream &output, const string &basename) const +SubsamplesStatement::writeOutput(ostream &output, const string &basename, bool minimal_workspace) const { output << "subsamples_indx = get_new_or_existing_ei_index('subsamples_index', '" << name1 << "','" << name2 << "');" << endl @@ -2029,7 +2029,7 @@ SubsamplesEqualStatement::SubsamplesEqualStatement(const string &to_name1_arg, } void -SubsamplesEqualStatement::writeOutput(ostream &output, const string &basename) const +SubsamplesEqualStatement::writeOutput(ostream &output, const string &basename, bool minimal_workspace) const { output << "subsamples_to_indx = get_new_or_existing_ei_index('subsamples_index', '" << to_name1 << "','" << to_name2 << "');" << endl @@ -2123,7 +2123,7 @@ JointPriorStatement::checkPass(ModFileStructure &mod_file_struct, WarningConsoli } void -JointPriorStatement::writeOutput(ostream &output, const string &basename) const +JointPriorStatement::writeOutput(ostream &output, const string &basename, bool minimal_workspace) const { for (vector::const_iterator it = joint_parameters.begin() ; it != joint_parameters.end(); it++) output << "eifind = get_new_or_existing_ei_index('joint_parameter_prior_index', '" @@ -2387,7 +2387,7 @@ PriorStatement::PriorStatement(const string &name_arg, } void -PriorStatement::writeOutput(ostream &output, const string &basename) const +PriorStatement::writeOutput(ostream &output, const string &basename, bool minimal_workspace) const { string lhs_field = "estimation_info.parameter(eifind)"; output << "eifind = get_new_or_existing_ei_index('parameter_prior_index', '" @@ -2424,7 +2424,7 @@ StdPriorStatement::StdPriorStatement(const string &name_arg, } void -StdPriorStatement::writeOutput(ostream &output, const string &basename) const +StdPriorStatement::writeOutput(ostream &output, const string &basename, bool minimal_workspace) const { string lhs_field; get_base_name(symbol_table.getType(name), lhs_field); @@ -2487,7 +2487,7 @@ CorrPriorStatement::checkPass(ModFileStructure &mod_file_struct, WarningConsolid } void -CorrPriorStatement::writeOutput(ostream &output, const string &basename) const +CorrPriorStatement::writeOutput(ostream &output, const string &basename, bool minimal_workspace) const { string lhs_field; get_base_name(symbol_table.getType(name), lhs_field); @@ -2575,7 +2575,7 @@ PriorEqualStatement::get_base_name(const SymbolType symb_type, string &lhs_field } void -PriorEqualStatement::writeOutput(ostream &output, const string &basename) const +PriorEqualStatement::writeOutput(ostream &output, const string &basename, bool minimal_workspace) const { string lhs_field, rhs_field; @@ -2721,7 +2721,7 @@ OptionsStatement::OptionsStatement(const string &name_arg, } void -OptionsStatement::writeOutput(ostream &output, const string &basename) const +OptionsStatement::writeOutput(ostream &output, const string &basename, bool minimal_workspace) const { string lhs_field = "estimation_info.parameter(eifind)"; output << "eifind = get_new_or_existing_ei_index('parameter_options_index', '" @@ -2749,7 +2749,7 @@ StdOptionsStatement::StdOptionsStatement(const string &name_arg, } void -StdOptionsStatement::writeOutput(ostream &output, const string &basename) const +StdOptionsStatement::writeOutput(ostream &output, const string &basename, bool minimal_workspace) const { string lhs_field; get_base_name(symbol_table.getType(name), lhs_field); @@ -2804,7 +2804,7 @@ CorrOptionsStatement::checkPass(ModFileStructure &mod_file_struct, WarningConsol } void -CorrOptionsStatement::writeOutput(ostream &output, const string &basename) const +CorrOptionsStatement::writeOutput(ostream &output, const string &basename, bool minimal_workspace) const { string lhs_field; get_base_name(symbol_table.getType(name), lhs_field); @@ -2887,7 +2887,7 @@ OptionsEqualStatement::get_base_name(const SymbolType symb_type, string &lhs_fie } void -OptionsEqualStatement::writeOutput(ostream &output, const string &basename) const +OptionsEqualStatement::writeOutput(ostream &output, const string &basename, bool minimal_workspace) const { string lhs_field, rhs_field; @@ -2961,7 +2961,7 @@ CalibSmootherStatement::checkPass(ModFileStructure &mod_file_struct, WarningCons } void -CalibSmootherStatement::writeOutput(ostream &output, const string &basename) const +CalibSmootherStatement::writeOutput(ostream &output, const string &basename, bool minimal_workspace) const { options_list.writeOutput(output); symbol_list.writeOutput("var_list_", output); @@ -2988,7 +2988,7 @@ ExtendedPathStatement::checkPass(ModFileStructure &mod_file_struct, WarningConso } void -ExtendedPathStatement::writeOutput(ostream &output, const string &basename) const +ExtendedPathStatement::writeOutput(ostream &output, const string &basename, bool minimal_workspace) const { // Beware: options do not have the same name in the interface and in the M code... @@ -3007,7 +3007,7 @@ ModelDiagnosticsStatement::ModelDiagnosticsStatement() } void -ModelDiagnosticsStatement::writeOutput(ostream &output, const string &basename) const +ModelDiagnosticsStatement::writeOutput(ostream &output, const string &basename, bool minimal_workspace) const { output << "model_diagnostics(M_,options_,oo_);" << endl; } @@ -3018,7 +3018,7 @@ Smoother2histvalStatement::Smoother2histvalStatement(const OptionsList &options_ } void -Smoother2histvalStatement::writeOutput(ostream &output, const string &basename) const +Smoother2histvalStatement::writeOutput(ostream &output, const string &basename, bool minimal_workspace) const { options_list.writeOutput(output, "options_smoother2histval"); output << "smoother2histval(options_smoother2histval);" << endl; diff --git a/ComputingTasks.hh b/ComputingTasks.hh index 037ce9b6..51bc055e 100644 --- a/ComputingTasks.hh +++ b/ComputingTasks.hh @@ -35,7 +35,7 @@ private: public: SteadyStatement(const OptionsList &options_list_arg); virtual void checkPass(ModFileStructure &mod_file_struct, WarningConsolidation &warnings); - virtual void writeOutput(ostream &output, const string &basename) const; + virtual void writeOutput(ostream &output, const string &basename, bool minimal_workspace) const; }; class CheckStatement : public Statement @@ -45,7 +45,7 @@ private: public: CheckStatement(const OptionsList &options_list_arg); virtual void checkPass(ModFileStructure &mod_file_struct, WarningConsolidation &warnings); - virtual void writeOutput(ostream &output, const string &basename) const; + virtual void writeOutput(ostream &output, const string &basename, bool minimal_workspace) const; }; class SimulStatement : public Statement @@ -55,7 +55,7 @@ private: public: SimulStatement(const OptionsList &options_list_arg); virtual void checkPass(ModFileStructure &mod_file_struct, WarningConsolidation &warnings); - virtual void writeOutput(ostream &output, const string &basename) const; + virtual void writeOutput(ostream &output, const string &basename, bool minimal_workspace) const; }; class PerfectForesightSetupStatement : public Statement @@ -64,7 +64,7 @@ private: const OptionsList options_list; public: PerfectForesightSetupStatement(const OptionsList &options_list_arg); - virtual void writeOutput(ostream &output, const string &basename) const; + virtual void writeOutput(ostream &output, const string &basename, bool minimal_workspace) const; }; class PerfectForesightSolverStatement : public Statement @@ -74,7 +74,7 @@ private: public: PerfectForesightSolverStatement(const OptionsList &options_list_arg); virtual void checkPass(ModFileStructure &mod_file_struct, WarningConsolidation &warnings); - virtual void writeOutput(ostream &output, const string &basename) const; + virtual void writeOutput(ostream &output, const string &basename, bool minimal_workspace) const; }; class ModelInfoStatement : public Statement @@ -84,7 +84,7 @@ private: public: ModelInfoStatement(const OptionsList &options_list_arg); virtual void checkPass(ModFileStructure &mod_file_struct, WarningConsolidation &warnings); - virtual void writeOutput(ostream &output, const string &basename) const; + virtual void writeOutput(ostream &output, const string &basename, bool minimal_workspace) const; }; class StochSimulStatement : public Statement @@ -96,7 +96,7 @@ public: StochSimulStatement(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; + virtual void writeOutput(ostream &output, const string &basename, bool minimal_workspace) const; }; class ForecastStatement : public Statement @@ -107,7 +107,7 @@ private: public: ForecastStatement(const SymbolList &symbol_list_arg, const OptionsList &options_list_arg); - virtual void writeOutput(ostream &output, const string &basename) const; + virtual void writeOutput(ostream &output, const string &basename, bool minimal_workspace) const; }; class RamseyModelStatement : public Statement @@ -119,7 +119,7 @@ public: RamseyModelStatement(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; + virtual void writeOutput(ostream &output, const string &basename, bool minimal_workspace) const; }; class RamseyPolicyStatement : public Statement @@ -131,7 +131,7 @@ public: RamseyPolicyStatement(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; + virtual void writeOutput(ostream &output, const string &basename, bool minimal_workspace) const; }; class DiscretionaryPolicyStatement : public Statement @@ -143,7 +143,7 @@ public: DiscretionaryPolicyStatement(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; + virtual void writeOutput(ostream &output, const string &basename, bool minimal_workspace) const; }; class RplotStatement : public Statement @@ -152,14 +152,14 @@ private: const SymbolList symbol_list; public: RplotStatement(const SymbolList &symbol_list_arg); - virtual void writeOutput(ostream &output, const string &basename) const; + virtual void writeOutput(ostream &output, const string &basename, bool minimal_workspace) const; }; class UnitRootVarsStatement : public Statement { public: UnitRootVarsStatement(void); - virtual void writeOutput(ostream &output, const string &basename) const; + virtual void writeOutput(ostream &output, const string &basename, bool minimal_workspace) const; }; class PeriodsStatement : public Statement @@ -168,7 +168,7 @@ private: const int periods; public: PeriodsStatement(int periods_arg); - virtual void writeOutput(ostream &output, const string &basename) const; + virtual void writeOutput(ostream &output, const string &basename, bool minimal_workspace) const; }; class DsampleStatement : public Statement @@ -178,7 +178,7 @@ private: public: DsampleStatement(int val1_arg); DsampleStatement(int val1_arg, int val2_arg); - virtual void writeOutput(ostream &output, const string &basename) const; + virtual void writeOutput(ostream &output, const string &basename, bool minimal_workspace) const; }; class EstimationStatement : public Statement @@ -190,7 +190,7 @@ public: EstimationStatement(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; + virtual void writeOutput(ostream &output, const string &basename, bool minimal_workspace) const; }; class DynareSensitivityStatement : public Statement @@ -200,7 +200,7 @@ private: public: DynareSensitivityStatement(const OptionsList &options_list_arg); virtual void checkPass(ModFileStructure &mod_file_struct, WarningConsolidation &warnings); - virtual void writeOutput(ostream &output, const string &basename) const; + virtual void writeOutput(ostream &output, const string &basename, bool minimal_workspace) const; }; class ObservationTrendsStatement : public Statement @@ -213,7 +213,7 @@ private: public: ObservationTrendsStatement(const trend_elements_t &trend_elements_arg, const SymbolTable &symbol_table_arg); - virtual void writeOutput(ostream &output, const string &basename) const; + virtual void writeOutput(ostream &output, const string &basename, bool minimal_workspace) const; }; class OsrParamsStatement : public Statement @@ -223,7 +223,7 @@ private: public: OsrParamsStatement(const SymbolList &symbol_list_arg); virtual void checkPass(ModFileStructure &mod_file_struct, WarningConsolidation &warnings); - virtual void writeOutput(ostream &output, const string &basename) const; + virtual void writeOutput(ostream &output, const string &basename, bool minimal_workspace) const; }; class OsrStatement : public Statement @@ -235,7 +235,7 @@ public: OsrStatement(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; + virtual void writeOutput(ostream &output, const string &basename, bool minimal_workspace) const; }; class DynaTypeStatement : public Statement @@ -246,7 +246,7 @@ private: public: DynaTypeStatement(const SymbolList &symbol_list_arg, const string &filename_arg); - virtual void writeOutput(ostream &output, const string &basename) const; + virtual void writeOutput(ostream &output, const string &basename, bool minimal_workspace) const; }; class DynaSaveStatement : public Statement @@ -257,7 +257,7 @@ private: public: DynaSaveStatement(const SymbolList &symbol_list_arg, const string &filename_arg); - virtual void writeOutput(ostream &output, const string &basename) const; + virtual void writeOutput(ostream &output, const string &basename, bool minimal_workspace) const; }; class ModelComparisonStatement : public Statement @@ -270,7 +270,7 @@ private: public: ModelComparisonStatement(const filename_list_t &filename_list_arg, const OptionsList &options_list_arg); - virtual void writeOutput(ostream &output, const string &basename) const; + virtual void writeOutput(ostream &output, const string &basename, bool minimal_workspace) const; }; //! Temporary structure used when parsing estimation_params* statements @@ -309,7 +309,7 @@ public: EstimatedParamsStatement(const vector &estim_params_list_arg, const SymbolTable &symbol_table_arg); virtual void checkPass(ModFileStructure &mod_file_struct, WarningConsolidation &warnings); - virtual void writeOutput(ostream &output, const string &basename) const; + virtual void writeOutput(ostream &output, const string &basename, bool minimal_workspace) const; }; class EstimatedParamsInitStatement : public Statement @@ -323,7 +323,7 @@ public: const SymbolTable &symbol_table_arg, const bool use_calibration_arg); virtual void checkPass(ModFileStructure &mod_file_struct, WarningConsolidation &warnings); - virtual void writeOutput(ostream &output, const string &basename) const; + virtual void writeOutput(ostream &output, const string &basename, bool minimal_workspace) const; }; class EstimatedParamsBoundsStatement : public Statement @@ -334,7 +334,7 @@ private: public: EstimatedParamsBoundsStatement(const vector &estim_params_list_arg, const SymbolTable &symbol_table_arg); - virtual void writeOutput(ostream &output, const string &basename) const; + virtual void writeOutput(ostream &output, const string &basename, bool minimal_workspace) const; }; class OptimWeightsStatement : public Statement @@ -351,7 +351,7 @@ public: const covar_weights_t &covar_weights_arg, const SymbolTable &symbol_table_arg); virtual void checkPass(ModFileStructure &mod_file_struct, WarningConsolidation &warnings); - virtual void writeOutput(ostream &output, const string &basename) const; + virtual void writeOutput(ostream &output, const string &basename, bool minimal_workspace) const; }; /*! \todo Make model_tree a member instead of a pointer */ @@ -370,7 +370,7 @@ public: virtual void checkPass(ModFileStructure &mod_file_struct, WarningConsolidation &warnings); /*! \todo allow for the possibility of disabling temporary terms */ virtual void computingPass(); - virtual void writeOutput(ostream &output, const string &basename) const; + virtual void writeOutput(ostream &output, const string &basename, bool minimal_workspace) const; //! Return the Planner Objective StaticModel *getPlannerObjective() const; }; @@ -383,7 +383,7 @@ private: public: BVARDensityStatement(int maxnlags_arg, const OptionsList &options_list_arg); virtual void checkPass(ModFileStructure &mod_file_struct, WarningConsolidation &warnings); - virtual void writeOutput(ostream &output, const string &basename) const; + virtual void writeOutput(ostream &output, const string &basename, bool minimal_workspace) const; }; class BVARForecastStatement : public Statement @@ -394,7 +394,7 @@ private: public: BVARForecastStatement(int nlags_arg, const OptionsList &options_list_arg); virtual void checkPass(ModFileStructure &mod_file_struct, WarningConsolidation &warnings); - virtual void writeOutput(ostream &output, const string &basename) const; + virtual void writeOutput(ostream &output, const string &basename, bool minimal_workspace) const; }; class SBVARStatement : public Statement @@ -404,7 +404,7 @@ private: public: SBVARStatement(const OptionsList &options_list_arg); virtual void checkPass(ModFileStructure &mod_file_struct, WarningConsolidation &warnings); - virtual void writeOutput(ostream &output, const string &basename) const; + virtual void writeOutput(ostream &output, const string &basename, bool minimal_workspace) const; }; class MSSBVAREstimationStatement : public Statement @@ -414,7 +414,7 @@ private: public: MSSBVAREstimationStatement(const OptionsList &options_list_arg); virtual void checkPass(ModFileStructure &mod_file_struct, WarningConsolidation &warnings); - virtual void writeOutput(ostream &output, const string &basename) const; + virtual void writeOutput(ostream &output, const string &basename, bool minimal_workspace) const; }; class MSSBVARSimulationStatement : public Statement @@ -424,7 +424,7 @@ private: public: MSSBVARSimulationStatement(const OptionsList &options_list_arg); virtual void checkPass(ModFileStructure &mod_file_struct, WarningConsolidation &warnings); - virtual void writeOutput(ostream &output, const string &basename) const; + virtual void writeOutput(ostream &output, const string &basename, bool minimal_workspace) const; }; class MSSBVARComputeMDDStatement : public Statement @@ -434,7 +434,7 @@ private: public: MSSBVARComputeMDDStatement(const OptionsList &options_list_arg); virtual void checkPass(ModFileStructure &mod_file_struct, WarningConsolidation &warnings); - virtual void writeOutput(ostream &output, const string &basename) const; + virtual void writeOutput(ostream &output, const string &basename, bool minimal_workspace) const; }; class MSSBVARComputeProbabilitiesStatement : public Statement @@ -444,7 +444,7 @@ private: public: MSSBVARComputeProbabilitiesStatement(const OptionsList &options_list_arg); virtual void checkPass(ModFileStructure &mod_file_struct, WarningConsolidation &warnings); - virtual void writeOutput(ostream &output, const string &basename) const; + virtual void writeOutput(ostream &output, const string &basename, bool minimal_workspace) const; }; class MSSBVARIrfStatement : public Statement @@ -456,7 +456,7 @@ public: MSSBVARIrfStatement(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; + virtual void writeOutput(ostream &output, const string &basename, bool minimal_workspace) const; }; class MSSBVARForecastStatement : public Statement @@ -466,7 +466,7 @@ private: public: MSSBVARForecastStatement(const OptionsList &options_list_arg); virtual void checkPass(ModFileStructure &mod_file_struct, WarningConsolidation &warnings); - virtual void writeOutput(ostream &output, const string &basename) const; + virtual void writeOutput(ostream &output, const string &basename, bool minimal_workspace) const; }; class MSSBVARVarianceDecompositionStatement : public Statement @@ -476,7 +476,7 @@ private: public: MSSBVARVarianceDecompositionStatement(const OptionsList &options_list_arg); virtual void checkPass(ModFileStructure &mod_file_struct, WarningConsolidation &warnings); - virtual void writeOutput(ostream &output, const string &basename) const; + virtual void writeOutput(ostream &output, const string &basename, bool minimal_workspace) const; }; class IdentificationStatement : public Statement @@ -486,7 +486,7 @@ private: public: IdentificationStatement(const OptionsList &options_list_arg); virtual void checkPass(ModFileStructure &mod_file_struct, WarningConsolidation &warnings); - virtual void writeOutput(ostream &output, const string &basename) const; + virtual void writeOutput(ostream &output, const string &basename, bool minimal_workspace) const; }; class WriteLatexDynamicModelStatement : public Statement @@ -495,7 +495,7 @@ private: const DynamicModel &dynamic_model; public: WriteLatexDynamicModelStatement(const DynamicModel &dynamic_model_arg); - virtual void writeOutput(ostream &output, const string &basename) const; + virtual void writeOutput(ostream &output, const string &basename, bool minimal_workspace) const; }; class WriteLatexStaticModelStatement : public Statement @@ -504,7 +504,7 @@ private: const StaticModel &static_model; public: WriteLatexStaticModelStatement(const StaticModel &static_model_arg); - virtual void writeOutput(ostream &output, const string &basename) const; + virtual void writeOutput(ostream &output, const string &basename, bool minimal_workspace) const; }; class WriteLatexOriginalModelStatement : public Statement @@ -513,7 +513,7 @@ private: const DynamicModel &original_model; public: WriteLatexOriginalModelStatement(const DynamicModel &original_model_arg); - virtual void writeOutput(ostream &output, const string &basename) const; + virtual void writeOutput(ostream &output, const string &basename, bool minimal_workspace) const; }; class ShockDecompositionStatement : public Statement @@ -524,7 +524,7 @@ private: public: ShockDecompositionStatement(const SymbolList &symbol_list_arg, const OptionsList &options_list_arg); - virtual void writeOutput(ostream &output, const string &basename) const; + virtual void writeOutput(ostream &output, const string &basename, bool minimal_workspace) const; }; class ConditionalForecastStatement : public Statement @@ -533,7 +533,7 @@ private: const OptionsList options_list; public: ConditionalForecastStatement(const OptionsList &options_list_arg); - virtual void writeOutput(ostream &output, const string &basename) const; + virtual void writeOutput(ostream &output, const string &basename, bool minimal_workspace) const; }; class PlotConditionalForecastStatement : public Statement @@ -544,7 +544,7 @@ private: const SymbolList symbol_list; public: PlotConditionalForecastStatement(int periods_arg, const SymbolList &symbol_list_arg); - virtual void writeOutput(ostream &output, const string &basename) const; + virtual void writeOutput(ostream &output, const string &basename, bool minimal_workspace) const; }; class CalibSmootherStatement : public Statement @@ -556,7 +556,7 @@ 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; + virtual void writeOutput(ostream &output, const string &basename, bool minimal_workspace) const; }; class ExtendedPathStatement : public Statement @@ -566,7 +566,7 @@ private: public: ExtendedPathStatement(const OptionsList &options_list_arg); virtual void checkPass(ModFileStructure &mod_file_struct, WarningConsolidation &warnings); - virtual void writeOutput(ostream &output, const string &basename) const; + virtual void writeOutput(ostream &output, const string &basename, bool minimal_workspace) const; }; class SvarIdentificationStatement : public Statement @@ -597,7 +597,7 @@ public: const bool &constants_exclusion_present_arg, const SymbolTable &symbol_table_arg); virtual void checkPass(ModFileStructure &mod_file_struct, WarningConsolidation &warnings); - virtual void writeOutput(ostream &output, const string &basename) const; + virtual void writeOutput(ostream &output, const string &basename, bool minimal_workspace) const; }; class MarkovSwitchingStatement : public Statement @@ -608,7 +608,7 @@ private: public: MarkovSwitchingStatement(const OptionsList &options_list_arg); virtual void checkPass(ModFileStructure &mod_file_struct, WarningConsolidation &warnings); - virtual void writeOutput(ostream &output, const string &basename) const; + virtual void writeOutput(ostream &output, const string &basename, bool minimal_workspace) const; virtual void writeCOutput(ostream &output, const string &basename); }; @@ -619,7 +619,7 @@ private: public: SvarStatement(const OptionsList &options_list_arg); virtual void checkPass(ModFileStructure &mod_file_struct, WarningConsolidation &warnings); - virtual void writeOutput(ostream &output, const string &basename) const; + virtual void writeOutput(ostream &output, const string &basename, bool minimal_workspace) const; }; class SetTimeStatement : public Statement @@ -628,7 +628,7 @@ private: const OptionsList options_list; public: SetTimeStatement(const OptionsList &options_list_arg); - virtual void writeOutput(ostream &output, const string &basename) const; + virtual void writeOutput(ostream &output, const string &basename, bool minimal_workspace) const; }; class EstimationDataStatement : public Statement @@ -638,7 +638,7 @@ private: public: EstimationDataStatement(const OptionsList &options_list_arg); virtual void checkPass(ModFileStructure &mod_file_struct, WarningConsolidation &warnings); - virtual void writeOutput(ostream &output, const string &basename) const; + virtual void writeOutput(ostream &output, const string &basename, bool minimal_workspace) const; }; class SubsamplesStatement : public Statement @@ -657,7 +657,7 @@ public: const subsample_declaration_map_t subsample_declaration_map_arg, const SymbolTable &symbol_table_arg); virtual void checkPass(ModFileStructure &mod_file_struct, WarningConsolidation &warnings); - virtual void writeOutput(ostream &output, const string &basename) const; + virtual void writeOutput(ostream &output, const string &basename, bool minimal_workspace) const; }; class SubsamplesEqualStatement : public Statement @@ -674,7 +674,7 @@ public: const string &from_name1_arg, const string &from_name2_arg, const SymbolTable &symbol_table_arg); - virtual void writeOutput(ostream &output, const string &basename) const; + virtual void writeOutput(ostream &output, const string &basename, bool minimal_workspace) const; }; class JointPriorStatement : public Statement @@ -688,7 +688,7 @@ public: const PriorDistributions &prior_shape_arg, const OptionsList &options_list_arg); virtual void checkPass(ModFileStructure &mod_file_struct, WarningConsolidation &warnings); - virtual void writeOutput(ostream &output, const string &basename) const; + virtual void writeOutput(ostream &output, const string &basename, bool minimal_workspace) const; void writeOutputHelper(ostream &output, const string &field, const string &lhs_field) const; }; @@ -732,7 +732,7 @@ public: const PriorDistributions &prior_shape_arg, const expr_t &variance_arg, const OptionsList &options_list_arg); - virtual void writeOutput(ostream &output, const string &basename) const; + virtual void writeOutput(ostream &output, const string &basename, bool minimal_workspace) const; virtual void writeCOutput(ostream &output, const string &basename); }; @@ -747,7 +747,7 @@ public: const expr_t &variance_arg, const OptionsList &options_list_arg, const SymbolTable &symbol_table_arg); - virtual void writeOutput(ostream &output, const string &basename) const; + virtual void writeOutput(ostream &output, const string &basename, bool minimal_workspace) const; virtual void writeCOutput(ostream &output, const string &basename); }; @@ -765,7 +765,7 @@ public: const OptionsList &options_list_arg, const SymbolTable &symbol_table_arg); virtual void checkPass(ModFileStructure &mod_file_struct, WarningConsolidation &warnings); - virtual void writeOutput(ostream &output, const string &basename) const; + virtual void writeOutput(ostream &output, const string &basename, bool minimal_workspace) const; virtual void writeCOutput(ostream &output, const string &basename); }; @@ -793,7 +793,7 @@ public: const SymbolTable &symbol_table_arg); void get_base_name(const SymbolType symb_type, string &lhs_field) const; virtual void checkPass(ModFileStructure &mod_file_struct, WarningConsolidation &warnings); - virtual void writeOutput(ostream &output, const string &basename) const; + virtual void writeOutput(ostream &output, const string &basename, bool minimal_workspace) const; }; class BasicOptionsStatement : public Statement @@ -822,7 +822,7 @@ class OptionsStatement : public BasicOptionsStatement { public: OptionsStatement(const string &name_arg, const string &subsample_name_arg, const OptionsList &options_list_arg); - virtual void writeOutput(ostream &output, const string &basename) const; + virtual void writeOutput(ostream &output, const string &basename, bool minimal_workspace) const; virtual void writeCOutput(ostream &output, const string &basename); }; @@ -835,7 +835,7 @@ public: const string &subsample_name_arg, const OptionsList &options_list_arg, const SymbolTable &symbol_table_arg); - virtual void writeOutput(ostream &output, const string &basename) const; + virtual void writeOutput(ostream &output, const string &basename, bool minimal_workspace) const; virtual void writeCOutput(ostream &output, const string &basename); }; @@ -850,7 +850,7 @@ public: const OptionsList &options_list_arg, const SymbolTable &symbol_table_arg); virtual void checkPass(ModFileStructure &mod_file_struct, WarningConsolidation &warnings); - virtual void writeOutput(ostream &output, const string &basename) const; + virtual void writeOutput(ostream &output, const string &basename, bool minimal_workspace) const; virtual void writeCOutput(ostream &output, const string &basename); }; @@ -878,14 +878,14 @@ public: const SymbolTable &symbol_table_arg); void get_base_name(const SymbolType symb_type, string &lhs_field) const; virtual void checkPass(ModFileStructure &mod_file_struct, WarningConsolidation &warnings); - virtual void writeOutput(ostream &output, const string &basename) const; + virtual void writeOutput(ostream &output, const string &basename, bool minimal_workspace) const; }; class ModelDiagnosticsStatement : public Statement { public: ModelDiagnosticsStatement(); - virtual void writeOutput(ostream &output, const string &basename) const; + virtual void writeOutput(ostream &output, const string &basename, bool minimal_workspace) const; }; class Smoother2histvalStatement : public Statement @@ -894,7 +894,7 @@ private: const OptionsList options_list; public: Smoother2histvalStatement(const OptionsList &options_list_arg); - virtual void writeOutput(ostream &output, const string &basename) const; + virtual void writeOutput(ostream &output, const string &basename, bool minimal_workspace) const; }; #endif diff --git a/DynareMain.cc b/DynareMain.cc index 9320a4af..0535663c 100644 --- a/DynareMain.cc +++ b/DynareMain.cc @@ -1,5 +1,5 @@ /* - * Copyright (C) 2003-2014 Dynare Team + * Copyright (C) 2003-2015 Dynare Team * * This file is part of Dynare. * @@ -38,7 +38,7 @@ void main2(stringstream &in, string &basename, bool debug, bool clear_all, bool clear_global, bool no_tmp_terms, bool no_log, bool no_warn, bool warn_uninit, bool console, bool nograph, bool nointeractive, bool parallel, const string ¶llel_config_file, const string &cluster_name, bool parallel_slave_open_mode, - bool parallel_test, bool nostrict, bool check_model_changes, FileOutputType output_mode, LanguageOutputType lang + bool parallel_test, bool nostrict, bool check_model_changes, bool minimal_workspace, FileOutputType output_mode, LanguageOutputType lang #if defined(_WIN32) || defined(__CYGWIN32__) , bool cygwin, bool msvc #endif @@ -48,8 +48,8 @@ void usage() { cerr << "Dynare usage: dynare mod_file [debug] [noclearall] [onlyclearglobals] [savemacro[=macro_file]] [onlymacro] [nolinemacro] [notmpterms] [nolog] [warn_uninit]" - << " [console] [nograph] [nointeractive] [parallel[=cluster_name]] [conffile=parallel_config_path_and_filename] [parallel_slave_open_mode] [parallel_test] " - << " [-D[=]] [nostrict] [fast] [output=dynamic|first|second|third] [language=C|C++]" + << " [console] [nograph] [nointeractive] [parallel[=cluster_name]] [conffile=parallel_config_path_and_filename] [parallel_slave_open_mode] [parallel_test]" + << " [-D[=]] [nostrict] [fast] [minimal_workspace] [output=dynamic|first|second|third] [language=C|C++]" #if defined(_WIN32) || defined(__CYGWIN32__) << " [cygwin] [msvc]" #endif @@ -98,6 +98,7 @@ main(int argc, char **argv) bool parallel_test = false; bool nostrict = false; bool check_model_changes = false; + bool minimal_workspace = false; map defines; FileOutputType output_mode = none; LanguageOutputType language = matlab; @@ -168,6 +169,8 @@ main(int argc, char **argv) nostrict = true; else if (!strcmp(argv[arg], "fast")) check_model_changes = true; + else if (!strcmp(argv[arg], "minimal_workspace")) + minimal_workspace = true; else if (strlen(argv[arg]) >= 8 && !strncmp(argv[arg], "parallel", 8)) { parallel = true; @@ -288,7 +291,8 @@ main(int argc, char **argv) // Do the rest main2(macro_output, basename, debug, clear_all, clear_global, no_tmp_terms, no_log, no_warn, warn_uninit, console, nograph, nointeractive, - parallel, parallel_config_file, cluster_name, parallel_slave_open_mode, parallel_test, nostrict, check_model_changes, output_mode, language + parallel, parallel_config_file, cluster_name, parallel_slave_open_mode, parallel_test, nostrict, check_model_changes, minimal_workspace, + output_mode, language #if defined(_WIN32) || defined(__CYGWIN32__) , cygwin, msvc #endif diff --git a/DynareMain2.cc b/DynareMain2.cc index fe1c6942..33782aff 100644 --- a/DynareMain2.cc +++ b/DynareMain2.cc @@ -1,5 +1,5 @@ /* - * Copyright (C) 2008-2014 Dynare Team + * Copyright (C) 2008-2015 Dynare Team * * This file is part of Dynare. * @@ -27,7 +27,7 @@ void main2(stringstream &in, string &basename, bool debug, bool clear_all, bool clear_global, bool no_tmp_terms, bool no_log, bool no_warn, bool warn_uninit, bool console, bool nograph, bool nointeractive, bool parallel, const string ¶llel_config_file, const string &cluster_name, bool parallel_slave_open_mode, - bool parallel_test, bool nostrict, bool check_model_changes, FileOutputType output_mode, LanguageOutputType language + bool parallel_test, bool nostrict, bool check_model_changes, bool minimal_workspace, FileOutputType output_mode, LanguageOutputType language #if defined(_WIN32) || defined(__CYGWIN32__) , bool cygwin, bool msvc #endif @@ -61,7 +61,7 @@ main2(stringstream &in, string &basename, bool debug, bool clear_all, bool clear mod_file->writeExternalFiles(basename, output_mode, language); else mod_file->writeOutputFiles(basename, clear_all, clear_global, no_log, no_warn, console, nograph, - nointeractive, config_file, check_model_changes + nointeractive, config_file, check_model_changes, minimal_workspace #if defined(_WIN32) || defined(__CYGWIN32__) , cygwin, msvc #endif diff --git a/ModFile.cc b/ModFile.cc index 0a7860c4..575d55fb 100644 --- a/ModFile.cc +++ b/ModFile.cc @@ -526,8 +526,9 @@ ModFile::computingPass(bool no_tmp_terms, FileOutputType output) } void -ModFile::writeOutputFiles(const string &basename, bool clear_all, bool clear_global, bool no_log, bool no_warn, bool console, bool nograph, - bool nointeractive, const ConfigFile &config_file, bool check_model_changes +ModFile::writeOutputFiles(const string &basename, bool clear_all, bool clear_global, bool no_log, bool no_warn, + bool console, bool nograph, bool nointeractive, const ConfigFile &config_file, + bool check_model_changes, bool minimal_workspace #if defined(_WIN32) || defined(__CYGWIN32__) , bool cygwin, bool msvc #endif @@ -587,6 +588,9 @@ ModFile::writeOutputFiles(const string &basename, bool clear_all, bool clear_glo if (!no_log) mOutputFile << "diary('" << basename << ".log');" << endl; + if (minimal_workspace) + mOutputFile << "options_.minimal_workspace = 1;" << endl; + if (console) mOutputFile << "options_.console_mode = 1;" << endl << "options_.nodisplay = 1;" << endl; @@ -740,7 +744,7 @@ ModFile::writeOutputFiles(const string &basename, bool clear_all, bool clear_glo for (vector::const_iterator it = statements.begin(); it != statements.end(); it++) { - (*it)->writeOutput(mOutputFile, basename); + (*it)->writeOutput(mOutputFile, basename, minimal_workspace); /* Special treatment for initval block: insert initial values for the auxiliary variables and initialize exo det */ diff --git a/ModFile.hh b/ModFile.hh index bf363668..34b3b30b 100644 --- a/ModFile.hh +++ b/ModFile.hh @@ -146,7 +146,8 @@ public: \param msvc Should the MEX command of use_dll be adapted for MSVC? */ void writeOutputFiles(const string &basename, bool clear_all, bool clear_global, bool no_log, bool no_warn, - bool console, bool nograph, bool nointeractive, const ConfigFile &config_file, bool check_model_changes + bool console, bool nograph, bool nointeractive, const ConfigFile &config_file, + bool check_model_changes, bool minimal_workspace #if defined(_WIN32) || defined(__CYGWIN32__) , bool cygwin, bool msvc #endif diff --git a/NumericalInitialization.cc b/NumericalInitialization.cc index 3df225fc..85055905 100644 --- a/NumericalInitialization.cc +++ b/NumericalInitialization.cc @@ -1,5 +1,5 @@ /* - * Copyright (C) 2003-2014 Dynare Team + * Copyright (C) 2003-2015 Dynare Team * * This file is part of Dynare. * @@ -41,13 +41,14 @@ InitParamStatement::checkPass(ModFileStructure &mod_file_struct, WarningConsolid } void -InitParamStatement::writeOutput(ostream &output, const string &basename) const +InitParamStatement::writeOutput(ostream &output, const string &basename, bool minimal_workspace) const { int id = symbol_table.getTypeSpecificID(symb_id) + 1; output << "M_.params( " << id << " ) = "; param_value->writeOutput(output); output << ";" << endl; - output << symbol_table.getName(symb_id) << " = M_.params( " << id << " );\n"; + if (!minimal_workspace) + output << symbol_table.getName(symb_id) << " = M_.params( " << id << " );" << endl; } void @@ -186,7 +187,7 @@ InitValStatement::checkPass(ModFileStructure &mod_file_struct, WarningConsolidat } void -InitValStatement::writeOutput(ostream &output, const string &basename) const +InitValStatement::writeOutput(ostream &output, const string &basename, bool minimal_workspace) const { output << "%" << endl << "% INITVAL instructions" << endl @@ -242,7 +243,7 @@ EndValStatement::checkPass(ModFileStructure &mod_file_struct, WarningConsolidati } void -EndValStatement::writeOutput(ostream &output, const string &basename) const +EndValStatement::writeOutput(ostream &output, const string &basename, bool minimal_workspace) const { output << "%" << endl << "% ENDVAL instructions" << endl @@ -268,7 +269,7 @@ HistValStatement::checkPass(ModFileStructure &mod_file_struct, WarningConsolidat } void -HistValStatement::writeOutput(ostream &output, const string &basename) const +HistValStatement::writeOutput(ostream &output, const string &basename, bool minimal_workspace) const { output << "%" << endl << "% HISTVAL instructions" << endl @@ -326,7 +327,7 @@ InitvalFileStatement::InitvalFileStatement(const string &filename_arg) : } void -InitvalFileStatement::writeOutput(ostream &output, const string &basename) const +InitvalFileStatement::writeOutput(ostream &output, const string &basename, bool minimal_workspace) const { output << "%" << endl << "% INITVAL_FILE statement" << endl @@ -341,7 +342,7 @@ HistvalFileStatement::HistvalFileStatement(const string &filename_arg) : } void -HistvalFileStatement::writeOutput(ostream &output, const string &basename) const +HistvalFileStatement::writeOutput(ostream &output, const string &basename, bool minimal_workspace) const { output << "histvalf('" << filename << "');" << endl; } @@ -354,7 +355,7 @@ HomotopyStatement::HomotopyStatement(const homotopy_values_t &homotopy_values_ar } void -HomotopyStatement::writeOutput(ostream &output, const string &basename) const +HomotopyStatement::writeOutput(ostream &output, const string &basename, bool minimal_workspace) const { output << "%" << endl << "% HOMOTOPY_SETUP instructions" << endl @@ -388,7 +389,7 @@ SaveParamsAndSteadyStateStatement::SaveParamsAndSteadyStateStatement(const strin } void -SaveParamsAndSteadyStateStatement::writeOutput(ostream &output, const string &basename) const +SaveParamsAndSteadyStateStatement::writeOutput(ostream &output, const string &basename, bool minimal_workspace) const { output << "save_params_and_steady_state('" << filename << "');" << endl; } @@ -429,7 +430,7 @@ LoadParamsAndSteadyStateStatement::LoadParamsAndSteadyStateStatement(const strin } void -LoadParamsAndSteadyStateStatement::writeOutput(ostream &output, const string &basename) const +LoadParamsAndSteadyStateStatement::writeOutput(ostream &output, const string &basename, bool minimal_workspace) const { for (map::const_iterator it = content.begin(); it != content.end(); it++) diff --git a/NumericalInitialization.hh b/NumericalInitialization.hh index c61d41e1..142838f7 100644 --- a/NumericalInitialization.hh +++ b/NumericalInitialization.hh @@ -1,5 +1,5 @@ /* - * Copyright (C) 2003-2014 Dynare Team + * Copyright (C) 2003-2015 Dynare Team * * This file is part of Dynare. * @@ -40,7 +40,7 @@ public: InitParamStatement(int symb_id_arg, const expr_t param_value_arg, const SymbolTable &symbol_table_arg); virtual void checkPass(ModFileStructure &mod_file_struct, WarningConsolidation &warnings); - virtual void writeOutput(ostream &output, const string &basename) const; + virtual void writeOutput(ostream &output, const string &basename, bool minimal_workspace) const; virtual void writeCOutput(ostream &output, const string &basename); //! Fill eval context with parameter value void fillEvalContext(eval_context_t &eval_context) const; @@ -77,7 +77,7 @@ public: const SymbolTable &symbol_table_arg, const bool &all_values_required_arg); virtual void checkPass(ModFileStructure &mod_file_struct, WarningConsolidation &warnings); - virtual void writeOutput(ostream &output, const string &basename) const; + virtual void writeOutput(ostream &output, const string &basename, bool minimal_workspace) const; //! Writes initializations for oo_.exo_simul and oo_.exo_det_simul void writeOutputPostInit(ostream &output) const; }; @@ -90,7 +90,7 @@ public: const bool &all_values_required_arg); //! Workaround for trac ticket #35 virtual void checkPass(ModFileStructure &mod_file_struct, WarningConsolidation &warnings); - virtual void writeOutput(ostream &output, const string &basename) const; + virtual void writeOutput(ostream &output, const string &basename, bool minimal_workspace) const; }; class HistValStatement : public Statement @@ -110,7 +110,7 @@ public: const SymbolTable &symbol_table_arg); //! Workaround for trac ticket #157 virtual void checkPass(ModFileStructure &mod_file_struct, WarningConsolidation &warnings); - virtual void writeOutput(ostream &output, const string &basename) const; + virtual void writeOutput(ostream &output, const string &basename, bool minimal_workspace) const; }; class InitvalFileStatement : public Statement @@ -119,7 +119,7 @@ private: const string filename; public: InitvalFileStatement(const string &filename_arg); - virtual void writeOutput(ostream &output, const string &basename) const; + virtual void writeOutput(ostream &output, const string &basename, bool minimal_workspace) const; }; class HistvalFileStatement : public Statement @@ -128,7 +128,7 @@ private: const string filename; public: HistvalFileStatement(const string &filename_arg); - virtual void writeOutput(ostream &output, const string &basename) const; + virtual void writeOutput(ostream &output, const string &basename, bool minimal_workspace) const; }; class HomotopyStatement : public Statement @@ -143,7 +143,7 @@ private: public: HomotopyStatement(const homotopy_values_t &homotopy_values_arg, const SymbolTable &symbol_table_arg); - virtual void writeOutput(ostream &output, const string &basename) const; + virtual void writeOutput(ostream &output, const string &basename, bool minimal_workspace) const; }; class SaveParamsAndSteadyStateStatement : public Statement @@ -152,7 +152,7 @@ private: const string filename; public: SaveParamsAndSteadyStateStatement(const string &filename_arg); - virtual void writeOutput(ostream &output, const string &basename) const; + virtual void writeOutput(ostream &output, const string &basename, bool minimal_workspace) const; }; class LoadParamsAndSteadyStateStatement : public Statement @@ -166,7 +166,7 @@ public: LoadParamsAndSteadyStateStatement(const string &filename, const SymbolTable &symbol_table_arg, WarningConsolidation &warnings); - virtual void writeOutput(ostream &output, const string &basename) const; + virtual void writeOutput(ostream &output, const string &basename, bool minimal_workspace) const; //! Fill eval context with parameters/variables values void fillEvalContext(eval_context_t &eval_context) const; }; diff --git a/Shocks.cc b/Shocks.cc index d0aecd96..b2ebd79e 100644 --- a/Shocks.cc +++ b/Shocks.cc @@ -1,5 +1,5 @@ /* - * Copyright (C) 2003-2014 Dynare Team + * Copyright (C) 2003-2015 Dynare Team * * This file is part of Dynare. * @@ -83,7 +83,7 @@ ShocksStatement::ShocksStatement(bool overwrite_arg, } void -ShocksStatement::writeOutput(ostream &output, const string &basename) const +ShocksStatement::writeOutput(ostream &output, const string &basename, bool minimal_workspace) const { output << "%" << endl << "% SHOCKS instructions" << endl @@ -340,7 +340,7 @@ MShocksStatement::MShocksStatement(bool overwrite_arg, } void -MShocksStatement::writeOutput(ostream &output, const string &basename) const +MShocksStatement::writeOutput(ostream &output, const string &basename, bool minimal_workspace) const { output << "%" << endl << "% MSHOCKS instructions" << endl @@ -380,7 +380,7 @@ ConditionalForecastPathsStatement::checkPass(ModFileStructure &mod_file_struct, } void -ConditionalForecastPathsStatement::writeOutput(ostream &output, const string &basename) const +ConditionalForecastPathsStatement::writeOutput(ostream &output, const string &basename, bool minimal_workspace) const { assert(path_length > 0); output << "constrained_vars_ = [];" << endl @@ -420,7 +420,7 @@ MomentCalibration::MomentCalibration(const constraints_t &constraints_arg, } void -MomentCalibration::writeOutput(ostream &output, const string &basename) const +MomentCalibration::writeOutput(ostream &output, const string &basename, bool minimal_workspace) const { output << "options_.endogenous_prior_restrictions.moment = {" << endl; for (size_t i = 0; i < constraints.size(); i++) @@ -442,7 +442,7 @@ IrfCalibration::IrfCalibration(const constraints_t &constraints_arg, } void -IrfCalibration::writeOutput(ostream &output, const string &basename) const +IrfCalibration::writeOutput(ostream &output, const string &basename, bool minimal_workspace) const { output << "options_.endogenous_prior_restrictions.irf = {" << endl; for (size_t i = 0; i < constraints.size(); i++) diff --git a/Shocks.hh b/Shocks.hh index 6ab43a64..155ef967 100644 --- a/Shocks.hh +++ b/Shocks.hh @@ -1,5 +1,5 @@ /* - * Copyright (C) 2003-2014 Dynare Team + * Copyright (C) 2003-2015 Dynare Team * * This file is part of Dynare. * @@ -77,7 +77,7 @@ public: const covar_and_corr_shocks_t &covar_shocks_arg, const covar_and_corr_shocks_t &corr_shocks_arg, const SymbolTable &symbol_table_arg); - virtual void writeOutput(ostream &output, const string &basename) const; + virtual void writeOutput(ostream &output, const string &basename, bool minimal_workspace) const; virtual void checkPass(ModFileStructure &mod_file_struct, WarningConsolidation &warnings); }; @@ -87,7 +87,7 @@ public: MShocksStatement(bool overwrite_arg, const det_shocks_t &det_shocks_arg, const SymbolTable &symbol_table_arg); - virtual void writeOutput(ostream &output, const string &basename) const; + virtual void writeOutput(ostream &output, const string &basename, bool minimal_workspace) const; }; class ConditionalForecastPathsStatement : public Statement @@ -98,7 +98,7 @@ private: public: ConditionalForecastPathsStatement(const AbstractShocksStatement::det_shocks_t &paths_arg); virtual void checkPass(ModFileStructure &mod_file_struct, WarningConsolidation &warnings); - virtual void writeOutput(ostream &output, const string &basename) const; + virtual void writeOutput(ostream &output, const string &basename, bool minimal_workspace) const; }; class MomentCalibration : public Statement @@ -117,7 +117,7 @@ private: public: MomentCalibration(const constraints_t &constraints_arg, const SymbolTable &symbol_table_arg); - virtual void writeOutput(ostream &output, const string &basename) const; + virtual void writeOutput(ostream &output, const string &basename, bool minimal_workspace) const; }; class IrfCalibration : public Statement @@ -136,7 +136,7 @@ private: public: IrfCalibration(const constraints_t &constraints_arg, const SymbolTable &symbol_table_arg); - virtual void writeOutput(ostream &output, const string &basename) const; + virtual void writeOutput(ostream &output, const string &basename, bool minimal_workspace) const; }; #endif diff --git a/SigmaeInitialization.cc b/SigmaeInitialization.cc index acc0a0a3..63d6a0b5 100644 --- a/SigmaeInitialization.cc +++ b/SigmaeInitialization.cc @@ -1,5 +1,5 @@ /* - * Copyright (C) 2003-2010 Dynare Team + * Copyright (C) 2003-2015 Dynare Team * * This file is part of Dynare. * @@ -59,7 +59,7 @@ SigmaeStatement::determineMatrixForm(const matrix_t &matrix) throw (MatrixFormEx } void -SigmaeStatement::writeOutput(ostream &output, const string &basename) const +SigmaeStatement::writeOutput(ostream &output, const string &basename, bool minimal_workspace) const { size_t ic, ic1, ir, ir1; diff --git a/SigmaeInitialization.hh b/SigmaeInitialization.hh index ddfcc7f1..41e24e32 100644 --- a/SigmaeInitialization.hh +++ b/SigmaeInitialization.hh @@ -1,5 +1,5 @@ /* - * Copyright (C) 2003-2010 Dynare Team + * Copyright (C) 2003-2015 Dynare Team * * This file is part of Dynare. * @@ -57,7 +57,7 @@ private: public: SigmaeStatement(const matrix_t &matrix_arg) throw (MatrixFormException); - virtual void writeOutput(ostream &output, const string &basename) const; + virtual void writeOutput(ostream &output, const string &basename, bool minimal_workspace) const; }; #endif diff --git a/Statement.cc b/Statement.cc index d4d522e7..25cf2732 100644 --- a/Statement.cc +++ b/Statement.cc @@ -1,5 +1,5 @@ /* - * Copyright (C) 2006-2014 Dynare Team + * Copyright (C) 2006-2015 Dynare Team * * This file is part of Dynare. * @@ -79,7 +79,7 @@ NativeStatement::NativeStatement(const string &native_statement_arg) : } void -NativeStatement::writeOutput(ostream &output, const string &basename) const +NativeStatement::writeOutput(ostream &output, const string &basename, bool minimal_workspace) const { using namespace boost::xpressive; string date_regex = "(-?\\d+([YyAa]|[Mm]([1-9]|1[0-2])|[Qq][1-4]|[Ww]([1-9]{1}|[1-4]\\d|5[0-2])))"; diff --git a/Statement.hh b/Statement.hh index 5bdade39..eb36d8ba 100644 --- a/Statement.hh +++ b/Statement.hh @@ -1,5 +1,5 @@ /* - * Copyright (C) 2006-2014 Dynare Team + * Copyright (C) 2006-2015 Dynare Team * * This file is part of Dynare. * @@ -134,7 +134,7 @@ public: \param output is the output stream of the main matlab file \param basename is the name of the modfile (without extension) which can be used to build auxiliary files */ - virtual void writeOutput(ostream &output, const string &basename) const = 0; + virtual void writeOutput(ostream &output, const string &basename, bool minimal_workspace) const = 0; virtual void writeCOutput(ostream &output, const string &basename); }; @@ -144,7 +144,7 @@ private: const string native_statement; public: NativeStatement(const string &native_statement_arg); - virtual void writeOutput(ostream &output, const string &basename) const; + virtual void writeOutput(ostream &output, const string &basename, bool minimal_workspace) const; }; class OptionsList