diff --git a/src/DynamicModel.cc b/src/DynamicModel.cc index fd8a505c..6866a812 100644 --- a/src/DynamicModel.cc +++ b/src/DynamicModel.cc @@ -242,7 +242,7 @@ DynamicModel::computeTemporaryTermsOrdered() getBlockEquationRenormalizedExpr(block, i)->computeTemporaryTerms(reference_count, temporary_terms, first_occurence, block, v_temporary_terms, i); else { - eq_node = static_cast(getBlockEquationExpr(block, i)); + eq_node = getBlockEquationExpr(block, i); eq_node->computeTemporaryTerms(reference_count, temporary_terms, first_occurence, block, v_temporary_terms, i); } } @@ -267,7 +267,7 @@ DynamicModel::computeTemporaryTermsOrdered() getBlockEquationRenormalizedExpr(block, i)->computeTemporaryTerms(reference_count, temporary_terms, first_occurence, block, v_temporary_terms, i); else { - eq_node = static_cast(getBlockEquationExpr(block, i)); + eq_node = getBlockEquationExpr(block, i); eq_node->computeTemporaryTerms(reference_count, temporary_terms, first_occurence, block, v_temporary_terms, i); } } @@ -288,7 +288,7 @@ DynamicModel::computeTemporaryTermsOrdered() getBlockEquationRenormalizedExpr(block, i)->collectTemporary_terms(temporary_terms, temporary_terms_in_use, block); else { - eq_node = static_cast(getBlockEquationExpr(block, i)); + eq_node = getBlockEquationExpr(block, i); eq_node->collectTemporary_terms(temporary_terms, temporary_terms_in_use, block); } } @@ -499,7 +499,7 @@ DynamicModel::writeModelEquationsOrdered_M(const string &basename) const int equation_ID = getBlockEquationID(block, i); EquationType equ_type = getBlockEquationType(block, i); string sModel = symbol_table.getName(symbol_table.getID(SymbolType::endogenous, variable_ID)); - eq_node = static_cast(getBlockEquationExpr(block, i)); + eq_node = getBlockEquationExpr(block, i); lhs = eq_node->arg1; rhs = eq_node->arg2; tmp_output.str(""); @@ -528,7 +528,7 @@ DynamicModel::writeModelEquationsOrdered_M(const string &basename) const rhs->writeOutput(output, local_output_type, local_temporary_terms, {}); output << endl << " "; tmp_output.str(""); - eq_node = static_cast(getBlockEquationRenormalizedExpr(block, i)); + eq_node = getBlockEquationRenormalizedExpr(block, i); lhs = eq_node->arg1; rhs = eq_node->arg2; lhs->writeOutput(output, local_output_type, local_temporary_terms, {}); @@ -1141,7 +1141,7 @@ DynamicModel::writeModelEquationsCode_Block(const string &basename, const map_id } if (equ_type == EquationType::evaluate) { - eq_node = static_cast(getBlockEquationExpr(block, i)); + eq_node = getBlockEquationExpr(block, i); lhs = eq_node->arg1; rhs = eq_node->arg2; rhs->compile(code_file, instruction_number, false, temporary_terms, map_idx, true, false); @@ -1149,7 +1149,7 @@ DynamicModel::writeModelEquationsCode_Block(const string &basename, const map_id } else if (equ_type == EquationType::evaluate_s) { - eq_node = static_cast(getBlockEquationRenormalizedExpr(block, i)); + eq_node = getBlockEquationRenormalizedExpr(block, i); lhs = eq_node->arg1; rhs = eq_node->arg2; rhs->compile(code_file, instruction_number, false, temporary_terms, map_idx, true, false); @@ -1171,7 +1171,7 @@ DynamicModel::writeModelEquationsCode_Block(const string &basename, const map_id end: FNUMEXPR_ fnumexpr(ModelEquation, getBlockEquationID(block, i)); fnumexpr.write(code_file, instruction_number); - eq_node = static_cast(getBlockEquationExpr(block, i)); + eq_node = getBlockEquationExpr(block, i); lhs = eq_node->arg1; rhs = eq_node->arg2; lhs->compile(code_file, instruction_number, false, temporary_terms, map_idx, true, false); diff --git a/src/ModelTree.cc b/src/ModelTree.cc index 5d102b2b..dd652c79 100644 --- a/src/ModelTree.cc +++ b/src/ModelTree.cc @@ -103,7 +103,7 @@ ModelTree::copyHelper(const ModelTree &m) nonstationary_symbols_map[it.first] = {it.second.first, f(it.second.second)}; for (const auto &it : m.equation_type_and_normalized_equation) - equation_type_and_normalized_equation.emplace_back(it.first, f(it.second)); + equation_type_and_normalized_equation.emplace_back(it.first, dynamic_cast(f(it.second))); for (const auto &it : m.blocks_derivatives) { diff --git a/src/ModelTree.hh b/src/ModelTree.hh index 47d5c794..e1700cd9 100644 --- a/src/ModelTree.hh +++ b/src/ModelTree.hh @@ -50,7 +50,7 @@ vectorToTuple(const vector &v) } //! Vector describing equations: BlockSimulationType, if BlockSimulationType == EVALUATE_s then a expr_t on the new normalized equation -using equation_type_and_normalized_equation_t = vector>; +using equation_type_and_normalized_equation_t = vector>; //! Vector describing variables: max_lag in the block, max_lead in the block using lag_lead_vector_t = vector>; @@ -342,13 +342,13 @@ protected: return equation_type_and_normalized_equation[eq_idx_block2orig[blocks[blk].first_equation + eq]].first == EquationType::evaluate_s; }; //! Return the expr_t of equation belonging to the block - expr_t + BinaryOpNode * getBlockEquationExpr(int blk, int eq) const { return equations[eq_idx_block2orig[blocks[blk].first_equation + eq]]; }; //! Return the expr_t of renormalized equation belonging to the block - expr_t + BinaryOpNode * getBlockEquationRenormalizedExpr(int blk, int eq) const { return equation_type_and_normalized_equation[eq_idx_block2orig[blocks[blk].first_equation + eq]].second; diff --git a/src/StaticModel.cc b/src/StaticModel.cc index e22a137d..370c4bd6 100644 --- a/src/StaticModel.cc +++ b/src/StaticModel.cc @@ -210,7 +210,7 @@ StaticModel::computeTemporaryTermsOrdered() getBlockEquationRenormalizedExpr(block, i)->computeTemporaryTerms(reference_count, temporary_terms, first_occurence, block, v_temporary_terms, i); else { - eq_node = static_cast(getBlockEquationExpr(block, i)); + eq_node = getBlockEquationExpr(block, i); eq_node->computeTemporaryTerms(reference_count, temporary_terms, first_occurence, block, v_temporary_terms, i); } } @@ -230,7 +230,7 @@ StaticModel::computeTemporaryTermsOrdered() getBlockEquationRenormalizedExpr(block, i)->collectTemporary_terms(temporary_terms, temporary_terms_in_use, block); else { - eq_node = static_cast(getBlockEquationExpr(block, i)); + eq_node = getBlockEquationExpr(block, i); eq_node->collectTemporary_terms(temporary_terms, temporary_terms_in_use, block); } } @@ -337,7 +337,7 @@ StaticModel::writeModelEquationsOrdered_M(const string &basename) const int equation_ID = getBlockEquationID(block, i); EquationType equ_type = getBlockEquationType(block, i); string sModel = symbol_table.getName(symbol_table.getID(SymbolType::endogenous, variable_ID)); - BinaryOpNode *eq_node = static_cast(getBlockEquationExpr(block, i)); + BinaryOpNode *eq_node = getBlockEquationExpr(block, i); expr_t lhs = eq_node->arg1, rhs = eq_node->arg2; ostringstream tmp_output; lhs->writeOutput(tmp_output, local_output_type, local_temporary_terms, {}); @@ -354,7 +354,7 @@ StaticModel::writeModelEquationsOrdered_M(const string &basename) const } else if (equ_type == EquationType::evaluate_s) { - eq_node = static_cast(getBlockEquationRenormalizedExpr(block, i)); + eq_node = getBlockEquationRenormalizedExpr(block, i); lhs = eq_node->arg1; rhs = eq_node->arg2; lhs->writeOutput(output, local_output_type, local_temporary_terms, {}); @@ -685,7 +685,7 @@ StaticModel::writeModelEquationsCode_Block(const string &basename, map_idx_t map } if (equ_type == EquationType::evaluate) { - eq_node = static_cast(getBlockEquationExpr(block, i)); + eq_node = getBlockEquationExpr(block, i); lhs = eq_node->arg1; rhs = eq_node->arg2; rhs->compile(code_file, instruction_number, false, temporary_terms, map_idx, false, false); @@ -693,7 +693,7 @@ StaticModel::writeModelEquationsCode_Block(const string &basename, map_idx_t map } else if (equ_type == EquationType::evaluate_s) { - eq_node = static_cast(getBlockEquationRenormalizedExpr(block, i)); + eq_node = getBlockEquationRenormalizedExpr(block, i); lhs = eq_node->arg1; rhs = eq_node->arg2; rhs->compile(code_file, instruction_number, false, temporary_terms, map_idx, false, false); @@ -713,7 +713,7 @@ StaticModel::writeModelEquationsCode_Block(const string &basename, map_idx_t map end: FNUMEXPR_ fnumexpr(ModelEquation, getBlockEquationID(block, i)); fnumexpr.write(code_file, instruction_number); - eq_node = static_cast(getBlockEquationExpr(block, i)); + eq_node = getBlockEquationExpr(block, i); lhs = eq_node->arg1; rhs = eq_node->arg2; lhs->compile(code_file, instruction_number, false, temporary_terms, map_idx, false, false); @@ -876,7 +876,7 @@ StaticModel::writeModelEquationsCode_Block(const string &basename, map_idx_t map } if (equ_type == EquationType::evaluate) { - eq_node = static_cast(getBlockEquationExpr(block, i)); + eq_node = getBlockEquationExpr(block, i); lhs = eq_node->arg1; rhs = eq_node->arg2; rhs->compile(code_file, instruction_number, false, tt2, map_idx2[block], false, false); @@ -884,7 +884,7 @@ StaticModel::writeModelEquationsCode_Block(const string &basename, map_idx_t map } else if (equ_type == EquationType::evaluate_s) { - eq_node = static_cast(getBlockEquationRenormalizedExpr(block, i)); + eq_node = getBlockEquationRenormalizedExpr(block, i); lhs = eq_node->arg1; rhs = eq_node->arg2; rhs->compile(code_file, instruction_number, false, tt2, map_idx2[block], false, false); @@ -904,7 +904,7 @@ StaticModel::writeModelEquationsCode_Block(const string &basename, map_idx_t map end_l: FNUMEXPR_ fnumexpr(ModelEquation, getBlockEquationID(block, i)); fnumexpr.write(code_file, instruction_number); - eq_node = static_cast(getBlockEquationExpr(block, i)); + eq_node = getBlockEquationExpr(block, i); lhs = eq_node->arg1; rhs = eq_node->arg2; lhs->compile(code_file, instruction_number, false, tt2, map_idx2[block], false, false);