diff --git a/src/ComputingTasks.cc b/src/ComputingTasks.cc index c13bfe52aeeb3546e837b6b11a2076d97cf2d2b8..f48f65438a6970989a64dde143c84a9b47c1cc24 100644 --- a/src/ComputingTasks.cc +++ b/src/ComputingTasks.cc @@ -1219,19 +1219,21 @@ EstimationStatement::checkPass(ModFileStructure &mod_file_struct, WarningConsoli exit(EXIT_FAILURE); } - if (options_list.num_options.find("mh_tune_jscale.target") != options_list.num_options.end() - && options_list.num_options.find("mh_jscale") != options_list.num_options.end()) + if (auto it = options_list.num_options.find("mh_tune_jscale.status"); + it != options_list.num_options.end() && it->second == "true") { - cerr << "ERROR: The mh_tune_jscale and mh_jscale options of the estimation statement are incompatible." << endl; - exit(EXIT_FAILURE); + if (options_list.num_options.find("mh_jscale") != options_list.num_options.end()) + { + cerr << "ERROR: The mh_tune_jscale and mh_jscale options of the estimation statement are incompatible." << endl; + exit(EXIT_FAILURE); + } } - - if (options_list.num_options.find("mh_tune_jscale.guess") != options_list.num_options.end() - && options_list.num_options.find("mh_tune_jscale.target") == options_list.num_options.end()) + else if (options_list.num_options.find("mh_tune_jscale.guess") != options_list.num_options.end()) { cerr << "ERROR: The option mh_tune_guess in estimation statement cannot be used without option mh_tune_jscale." << endl; exit(EXIT_FAILURE); } + /* Check that we are not trying to estimate a parameter appearing in the planner discount factor (see dynare#1173) */