Merge branch 'osr' of git.dynare.org:JohannesPfeifer/preprocessor

Ref. !83
master
Sébastien Villemot 2023-09-13 11:18:26 +02:00
commit 978789d02a
No known key found for this signature in database
GPG Key ID: 2CECE9350ECEBE4A
4 changed files with 12 additions and 0 deletions

View File

@ -2112,6 +2112,12 @@ OsrStatement::checkPass(ModFileStructure &mod_file_struct, WarningConsolidation
opt && *opt == "true")
mod_file_struct.partial_information = true;
// Fill in mod_file_struct.estimation_analytic_derivation
if (auto opt = options_list.get_if<OptionsList::NumVal>("analytic_derivation");
opt && *opt == "1")
mod_file_struct.osr_analytic_derivation = true;
// Option k_order_solver (implicit when order >= 3)
if (auto opt = options_list.get_if<OptionsList::NumVal>("k_order_solver");
(opt && *opt == "true") || mod_file_struct.order_option >= 3)

View File

@ -2356,6 +2356,8 @@ osr_options : stoch_simul_primary_options
| o_optim
| o_huge_number
| o_silent_optimizer
| o_analytic_derivation
| o_analytic_derivation_mode
;
osr : OSR ';'

View File

@ -670,6 +670,7 @@ ModFile::computingPass(bool no_tmp_terms, OutputType output, int params_derivs_o
if (mod_file_struct.identification_present
|| mod_file_struct.estimation_analytic_derivation
|| mod_file_struct.osr_analytic_derivation
|| (mod_file_struct.GMM_present && (mod_file_struct.analytic_standard_errors_present || mod_file_struct.analytic_jacobian_present)))
paramsDerivsOrder = params_derivs_order;
@ -722,6 +723,7 @@ ModFile::computingPass(bool no_tmp_terms, OutputType output, int params_derivs_o
int paramsDerivsOrder = 0;
if (mod_file_struct.identification_present
|| mod_file_struct.estimation_analytic_derivation
|| mod_file_struct.osr_analytic_derivation
|| (mod_file_struct.GMM_present && (mod_file_struct.analytic_standard_errors_present || mod_file_struct.analytic_jacobian_present)))
paramsDerivsOrder = params_derivs_order;
dynamic_model.computingPass(derivsOrder, paramsDerivsOrder, global_eval_context, no_tmp_terms, block, use_dll);

View File

@ -74,6 +74,8 @@ struct ModFileStructure
bool sensitivity_present{false};
//! Whether the option analytic_derivation is given to estimation
bool estimation_analytic_derivation{false};
//! Whether the option analytic_derivation is given to osr
bool osr_analytic_derivation{false};
//! Whether the option partial_information is given to stoch_simul/estimation/osr/ramsey_policy
bool partial_information{false};
//! Whether the "k_order_solver" option is used (explictly, or implicitly if order >= 3)