diff --git a/src/ComputingTasks.cc b/src/ComputingTasks.cc index ba134fa876ab801c023ed9af0bef71e1783da6e7..9d7d503560eac6ef0fe093fb00d07fefa5cd82e3 100644 --- a/src/ComputingTasks.cc +++ b/src/ComputingTasks.cc @@ -515,17 +515,12 @@ void RamseyModelStatement::writeOutput(ostream &output, [[maybe_unused]] const string &basename, [[maybe_unused]] 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 - // It should probably rather be a M_ field, but we leave it in options_ for historical reason - // Ensure that order 3 implies k_order (#844) if (auto opt1 = options_list.get_if<OptionsList::NumVal>("order"), opt2 = options_list.get_if<OptionsList::NumVal>("k_order_solver"); (opt2 && *opt2 == "true") || (opt1 && stoi(*opt1) >= 3)) output << "options_.k_order_solver = true;" << endl; - output << "options_.ramsey_policy = true;" << endl; options_list.writeOutput(output); } diff --git a/src/ModFile.cc b/src/ModFile.cc index 63ef9a43dad20543d9a5d0dbfb78c5909290c6aa..a5fbc490a74c5c45a764cf6f2e30cf5ae4390673 100644 --- a/src/ModFile.cc +++ b/src/ModFile.cc @@ -892,11 +892,14 @@ ModFile::writeMOutput(const string &basename, bool clear_all, bool clear_global, << "M_.heteroskedastic_shocks.Qvalue_orig = [];" << endl << "M_.heteroskedastic_shocks.Qscale_orig = [];" << endl; + // NB: options_.{ramsey,discretionary}_policy should rather be fields of M_ mOutputFile << boolalpha << "options_.linear = " << linear << ";" << endl << "options_.block = " << block << ";" << endl << "options_.bytecode = " << bytecode << ";" << endl - << "options_.use_dll = " << use_dll << ";" << endl; + << "options_.use_dll = " << use_dll << ";" << endl + << "options_.ramsey_policy = " << (mod_file_struct.ramsey_model_present || mod_file_struct.ramsey_policy_present) << ";" << endl + << "options_.discretionary_policy = " << mod_file_struct.discretionary_policy_present << ";" << endl; if (parallel_local_files.size() > 0) {