diff --git a/src/ExprNode.cc b/src/ExprNode.cc index a4c6ae77a4df8e5819870f8f43bf06f1faa7034c..1bf3a6ac955ad5ec9f4e7c6e67e48186240773e7 100644 --- a/src/ExprNode.cc +++ b/src/ExprNode.cc @@ -6917,6 +6917,7 @@ AbstractExternalFunctionNode::computeDerivative(int deriv_id) { assert(datatree.external_functions_table.getNargs(symb_id) > 0); vector<expr_t> dargs; + dargs.reserve(arguments.size()); for (auto argument : arguments) dargs.push_back(argument->getDerivative(deriv_id)); return composeDerivatives(dargs); @@ -6930,6 +6931,7 @@ AbstractExternalFunctionNode::computeChainRuleDerivative( { assert(datatree.external_functions_table.getNargs(symb_id) > 0); vector<expr_t> dargs; + dargs.reserve(arguments.size()); for (auto argument : arguments) dargs.push_back(argument->getChainRuleDerivative(deriv_id, recursive_variables, non_null_chain_rule_derivatives, cache)); @@ -7405,6 +7407,7 @@ expr_t AbstractExternalFunctionNode::toStatic(DataTree& static_datatree) const { vector<expr_t> static_arguments; + static_arguments.reserve(arguments.size()); for (auto argument : arguments) static_arguments.push_back(argument->toStatic(static_datatree)); return buildSimilarExternalFunctionNode(static_arguments, static_datatree); @@ -7414,6 +7417,7 @@ expr_t AbstractExternalFunctionNode::clone(DataTree& alt_datatree) const { vector<expr_t> dynamic_arguments; + dynamic_arguments.reserve(arguments.size()); for (auto argument : arguments) dynamic_arguments.push_back(argument->clone(alt_datatree)); return buildSimilarExternalFunctionNode(dynamic_arguments, alt_datatree); @@ -7423,6 +7427,7 @@ expr_t ExternalFunctionNode::composeDerivatives(const vector<expr_t>& dargs) { vector<expr_t> dNodes; + dNodes.reserve(dargs.size()); for (int i = 0; i < static_cast<int>(dargs.size()); i++) dNodes.push_back(datatree.AddTimes( dargs.at(i), datatree.AddFirstDerivExternalFunction(symb_id, arguments, i + 1))); @@ -7715,6 +7720,7 @@ expr_t FirstDerivExternalFunctionNode::composeDerivatives(const vector<expr_t>& dargs) { vector<expr_t> dNodes; + dNodes.reserve(dargs.size()); for (int i = 0; i < static_cast<int>(dargs.size()); i++) dNodes.push_back(datatree.AddTimes(dargs.at(i), datatree.AddSecondDerivExternalFunction( symb_id, arguments, inputIndex, i + 1))); diff --git a/src/ModelEquationBlock.cc b/src/ModelEquationBlock.cc index 5524712337a66108ae66b1766c731bdf69f64071..212e01947f30c70c6aca06811c0a9ef410004013 100644 --- a/src/ModelEquationBlock.cc +++ b/src/ModelEquationBlock.cc @@ -529,6 +529,7 @@ Epilogue::writeOutput(ostream& output) const expr->collectVariables(SymbolType::endogenous, endogs); vector<string> symbol_list; + symbol_list.reserve(endogs.size()); for (auto symb_id : endogs) symbol_list.push_back(symbol_table.getName(symb_id)); SymbolList {move(symbol_list)}.writeOutput("M_.epilogue_var_list_", output); diff --git a/src/StaticModel.cc b/src/StaticModel.cc index 5ce83bbda90d4b5a4d6553295b67d6968526ee50..0ac4afa805d09f88a79839d8ac0f7cd5b271ebef 100644 --- a/src/StaticModel.cc +++ b/src/StaticModel.cc @@ -854,6 +854,7 @@ StaticModel::computeRamseyMultipliersDerivatives(int ramsey_orig_endo_nbr, bool // Compute derivation IDs of Lagrange multipliers set<int> mult_symb_ids {symbol_table.getLagrangeMultipliers()}; vector<int> mult_deriv_ids; + mult_deriv_ids.reserve(mult_symb_ids.size()); for (int symb_id : mult_symb_ids) mult_deriv_ids.push_back(getDerivID(symb_id, 0)); diff --git a/src/macro/Expressions.cc b/src/macro/Expressions.cc index cfc6704bb3caaffd4dc3349075d44297d2accb60..b1e671a93343928c9c4078b5452415340acce138 100644 --- a/src/macro/Expressions.cc +++ b/src/macro/Expressions.cc @@ -640,6 +640,7 @@ BaseTypePtr Array::eval(Environment& env) const { vector<ExpressionPtr> retval; + retval.reserve(arr.size()); for (const auto& it : arr) retval.emplace_back(it->eval(env)); return make_shared<Array>(retval); @@ -649,6 +650,7 @@ BaseTypePtr Tuple::eval(Environment& env) const { vector<ExpressionPtr> retval; + retval.reserve(tup.size()); for (const auto& it : tup) retval.emplace_back(it->eval(env)); return make_shared<Tuple>(retval);