From 85dbb649b78bd14f6cedcede0e06fcb5475aebab Mon Sep 17 00:00:00 2001 From: Houtan Bastani <houtan@dynare.org> Date: Fri, 14 Sep 2018 17:04:06 +0200 Subject: [PATCH] move trend_component_table and var_model_table to DynamicModel as they are only used there --- src/ComputingTasks.cc | 7 ++----- src/ComputingTasks.hh | 4 +--- src/DataTree.cc | 8 ++------ src/DataTree.hh | 9 ++------- src/DynamicModel.cc | 5 +++-- src/DynamicModel.hh | 5 +++++ src/ModFile.cc | 12 ++++-------- src/ModelEquationBlock.cc | 5 +---- src/ModelEquationBlock.hh | 2 -- src/ModelTree.cc | 7 ++----- src/ModelTree.hh | 4 +--- src/ParsingDriver.cc | 4 +--- src/StaticModel.cc | 7 ++----- src/StaticModel.hh | 4 +--- 14 files changed, 27 insertions(+), 56 deletions(-) diff --git a/src/ComputingTasks.cc b/src/ComputingTasks.cc index 561bd2f7..40d3c002 100644 --- a/src/ComputingTasks.cc +++ b/src/ComputingTasks.cc @@ -2061,11 +2061,8 @@ ModelComparisonStatement::writeJsonOutput(ostream &output) const PlannerObjectiveStatement::PlannerObjectiveStatement(SymbolTable &symbol_table, NumericalConstants &num_constants, - ExternalFunctionsTable &external_functions_table, - TrendComponentModelTable &trend_component_model_table_arg, - VarModelTable &var_model_table_arg) : - model_tree{symbol_table, num_constants, external_functions_table, - trend_component_model_table_arg, var_model_table_arg} + ExternalFunctionsTable &external_functions_table) : + model_tree{symbol_table, num_constants, external_functions_table} { } diff --git a/src/ComputingTasks.hh b/src/ComputingTasks.hh index be6c5d1a..4985c2b7 100644 --- a/src/ComputingTasks.hh +++ b/src/ComputingTasks.hh @@ -510,9 +510,7 @@ private: public: PlannerObjectiveStatement(SymbolTable &symbol_table, NumericalConstants &num_constants, - ExternalFunctionsTable &external_functions_table, - TrendComponentModelTable &trend_component_model_table_arg, - VarModelTable &var_model_table_arg); + ExternalFunctionsTable &external_functions_table); /*! \todo check there are only endogenous variables at the current period in the objective (no exogenous, no lead/lag) */ void checkPass(ModFileStructure &mod_file_struct, WarningConsolidation &warnings) override; diff --git a/src/DataTree.cc b/src/DataTree.cc index 736e49e8..cdab0702 100644 --- a/src/DataTree.cc +++ b/src/DataTree.cc @@ -28,14 +28,10 @@ DataTree::DataTree(SymbolTable &symbol_table_arg, NumericalConstants &num_constants_arg, - ExternalFunctionsTable &external_functions_table_arg, - TrendComponentModelTable &trend_component_model_table_arg, - VarModelTable &var_model_table_arg) : + ExternalFunctionsTable &external_functions_table_arg) : symbol_table(symbol_table_arg), num_constants(num_constants_arg), - external_functions_table(external_functions_table_arg), - trend_component_model_table(trend_component_model_table_arg), - var_model_table(var_model_table_arg) + external_functions_table(external_functions_table_arg) { Zero = AddNonNegativeConstant("0"); One = AddNonNegativeConstant("1"); diff --git a/src/DataTree.hh b/src/DataTree.hh index 623641c1..f32ec26f 100644 --- a/src/DataTree.hh +++ b/src/DataTree.hh @@ -45,10 +45,6 @@ public: NumericalConstants &num_constants; //! A reference to the external functions table ExternalFunctionsTable &external_functions_table; - //! A reference to the trend component model table - TrendComponentModelTable &trend_component_model_table; - //! A reference to the VAR model table - VarModelTable &var_model_table; protected: //! num_constant_id -> NumConstNode @@ -122,9 +118,8 @@ private: public: DataTree(SymbolTable &symbol_table_arg, NumericalConstants &num_constants_arg, - ExternalFunctionsTable &external_functions_table_arg, - TrendComponentModelTable &trend_component_model_table_arg, - VarModelTable &var_model_table_arg); + ExternalFunctionsTable &external_functions_table_arg); + virtual ~DataTree(); diff --git a/src/DynamicModel.cc b/src/DynamicModel.cc index 8d77e5ef..cf7523a2 100644 --- a/src/DynamicModel.cc +++ b/src/DynamicModel.cc @@ -36,8 +36,9 @@ DynamicModel::DynamicModel(SymbolTable &symbol_table_arg, ExternalFunctionsTable &external_functions_table_arg, TrendComponentModelTable &trend_component_model_table_arg, VarModelTable &var_model_table_arg) : - ModelTree(symbol_table_arg, num_constants_arg, external_functions_table_arg, - trend_component_model_table_arg, var_model_table_arg), + ModelTree(symbol_table_arg, num_constants_arg, external_functions_table_arg), + trend_component_model_table(trend_component_model_table_arg), + var_model_table(var_model_table_arg), max_lag(0), max_lead(0), max_endo_lag(0), max_endo_lead(0), max_exo_lag(0), max_exo_lead(0), diff --git a/src/DynamicModel.hh b/src/DynamicModel.hh index 5f5c67fe..d6e4bc01 100644 --- a/src/DynamicModel.hh +++ b/src/DynamicModel.hh @@ -30,6 +30,11 @@ using namespace std; //! Stores a dynamic model class DynamicModel : public ModelTree { +public: + //! A reference to the trend component model table + TrendComponentModelTable &trend_component_model_table; + //! A reference to the VAR model table + VarModelTable &var_model_table; private: constexpr static double zero_band{1e-8}; diff --git a/src/ModFile.cc b/src/ModFile.cc index 2aacae8d..47246a9a 100644 --- a/src/ModFile.cc +++ b/src/ModFile.cc @@ -32,8 +32,7 @@ ModFile::ModFile(WarningConsolidation &warnings_arg) : var_model_table(symbol_table), trend_component_model_table(symbol_table), - expressions_tree(symbol_table, num_constants, external_functions_table, - trend_component_model_table, var_model_table), + expressions_tree(symbol_table, num_constants, external_functions_table), original_model(symbol_table, num_constants, external_functions_table, trend_component_model_table, var_model_table), dynamic_model(symbol_table, num_constants, external_functions_table, @@ -46,12 +45,9 @@ ModFile::ModFile(WarningConsolidation &warnings_arg) trend_component_model_table, var_model_table), epilogue(symbol_table, num_constants, external_functions_table, trend_component_model_table, var_model_table), - static_model(symbol_table, num_constants, external_functions_table, - trend_component_model_table, var_model_table), - steady_state_model(symbol_table, num_constants, external_functions_table, - trend_component_model_table, var_model_table, static_model), - diff_static_model(symbol_table, num_constants, external_functions_table, - trend_component_model_table, var_model_table), + static_model(symbol_table, num_constants, external_functions_table), + steady_state_model(symbol_table, num_constants, external_functions_table, static_model), + diff_static_model(symbol_table, num_constants, external_functions_table), linear(false), block(false), byte_code(false), use_dll(false), no_static(false), differentiate_forward_vars(false), nonstationary_variables(false), param_used_with_lead_lag(false), warnings(warnings_arg) diff --git a/src/ModelEquationBlock.cc b/src/ModelEquationBlock.cc index 59f5170f..34ea65fb 100644 --- a/src/ModelEquationBlock.cc +++ b/src/ModelEquationBlock.cc @@ -25,11 +25,8 @@ SteadyStateModel::SteadyStateModel(SymbolTable &symbol_table_arg, NumericalConstants &num_constants_arg, ExternalFunctionsTable &external_functions_table_arg, - TrendComponentModelTable &trend_component_model_table_arg, - VarModelTable &var_model_table_arg, const StaticModel &static_model_arg) : - DataTree(symbol_table_arg, num_constants_arg, external_functions_table_arg, - trend_component_model_table_arg, var_model_table_arg), + DataTree(symbol_table_arg, num_constants_arg, external_functions_table_arg), static_model(static_model_arg) { } diff --git a/src/ModelEquationBlock.hh b/src/ModelEquationBlock.hh index 5ad8ed0d..199e4bdb 100644 --- a/src/ModelEquationBlock.hh +++ b/src/ModelEquationBlock.hh @@ -39,8 +39,6 @@ public: SteadyStateModel(SymbolTable &symbol_table_arg, NumericalConstants &num_constants_arg, ExternalFunctionsTable &external_functions_table_arg, - TrendComponentModelTable &trend_component_model_table_arg, - VarModelTable &var_model_table_arg, const StaticModel &static_model_arg); //! Add an expression of the form "var = expr;" void addDefinition(int symb_id, expr_t expr); diff --git a/src/ModelTree.cc b/src/ModelTree.cc index e9916de6..3cc8d6bb 100644 --- a/src/ModelTree.cc +++ b/src/ModelTree.cc @@ -1003,11 +1003,8 @@ ModelTree::BlockLinear(const blocks_derivatives_t &blocks_derivatives, const vec ModelTree::ModelTree(SymbolTable &symbol_table_arg, NumericalConstants &num_constants_arg, - ExternalFunctionsTable &external_functions_table_arg, - TrendComponentModelTable &trend_component_model_table_arg, - VarModelTable &var_model_table_arg) : - DataTree(symbol_table_arg, num_constants_arg, external_functions_table_arg, - trend_component_model_table_arg, var_model_table_arg), + ExternalFunctionsTable &external_functions_table_arg) : + DataTree(symbol_table_arg, num_constants_arg, external_functions_table_arg), cutoff(1e-15), mfs(0) diff --git a/src/ModelTree.hh b/src/ModelTree.hh index 97594d66..1ec33831 100644 --- a/src/ModelTree.hh +++ b/src/ModelTree.hh @@ -323,9 +323,7 @@ protected: public: ModelTree(SymbolTable &symbol_table_arg, NumericalConstants &num_constants_arg, - ExternalFunctionsTable &external_functions_table_arg, - TrendComponentModelTable &trend_component_model_table_arg, - VarModelTable &var_model_table_arg); + ExternalFunctionsTable &external_functions_table_arg); //! Absolute value under which a number is considered to be zero double cutoff; //! Compute the minimum feedback set diff --git a/src/ParsingDriver.cc b/src/ParsingDriver.cc index dcad3c39..c6046e4b 100644 --- a/src/ParsingDriver.cc +++ b/src/ParsingDriver.cc @@ -2136,9 +2136,7 @@ ParsingDriver::begin_planner_objective() { planner_objective_statement = make_unique<PlannerObjectiveStatement>(mod_file->symbol_table, mod_file->num_constants, - mod_file->external_functions_table, - mod_file->trend_component_model_table, - mod_file->var_model_table); + mod_file->external_functions_table); set_current_data_tree(&planner_objective_statement->getPlannerObjective()); } diff --git a/src/StaticModel.cc b/src/StaticModel.cc index c46f193f..4b339a5d 100644 --- a/src/StaticModel.cc +++ b/src/StaticModel.cc @@ -31,11 +31,8 @@ StaticModel::StaticModel(SymbolTable &symbol_table_arg, NumericalConstants &num_constants_arg, - ExternalFunctionsTable &external_functions_table_arg, - TrendComponentModelTable &trend_component_model_table_arg, - VarModelTable &var_model_table_arg) : - ModelTree(symbol_table_arg, num_constants_arg, external_functions_table_arg, - trend_component_model_table_arg, var_model_table_arg), + ExternalFunctionsTable &external_functions_table_arg) : + ModelTree(symbol_table_arg, num_constants_arg, external_functions_table_arg), global_temporary_terms(true) { } diff --git a/src/StaticModel.hh b/src/StaticModel.hh index 341b36e5..e29d4b03 100644 --- a/src/StaticModel.hh +++ b/src/StaticModel.hh @@ -162,9 +162,7 @@ protected: public: StaticModel(SymbolTable &symbol_table_arg, NumericalConstants &num_constants, - ExternalFunctionsTable &external_functions_table_arg, - TrendComponentModelTable &trend_component_model_table_arg, - VarModelTable &var_model_table_arg); + ExternalFunctionsTable &external_functions_table_arg); //! Writes information on block decomposition when relevant void writeOutput(ostream &output, bool block) const; -- GitLab