Optimization: use move semantics in a few more places
parent
8541179a56
commit
ee8ee7c27f
|
@ -3185,11 +3185,11 @@ DynamicModel::updateVarAndTrendModel() const
|
||||||
}
|
}
|
||||||
|
|
||||||
if (var)
|
if (var)
|
||||||
var_model_table.setRhs(rhsr);
|
var_model_table.setRhs(move(rhsr));
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
trend_component_model_table.setRhs(rhsr);
|
trend_component_model_table.setRhs(move(rhsr));
|
||||||
trend_component_model_table.setTargetVar(trend_varr);
|
trend_component_model_table.setTargetVar(move(trend_varr));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -3256,10 +3256,10 @@ DynamicModel::fillVarModelTable() const
|
||||||
lhs_expr_tr[model_name] = lhs_expr_t;
|
lhs_expr_tr[model_name] = lhs_expr_t;
|
||||||
rhsr[model_name] = rhs;
|
rhsr[model_name] = rhs;
|
||||||
}
|
}
|
||||||
var_model_table.setEqNums(eqnums);
|
var_model_table.setEqNums(move(eqnums));
|
||||||
var_model_table.setLhs(lhsr);
|
var_model_table.setLhs(move(lhsr));
|
||||||
var_model_table.setRhs(rhsr);
|
var_model_table.setRhs(move(rhsr));
|
||||||
var_model_table.setLhsExprT(lhs_expr_tr);
|
var_model_table.setLhsExprT(move(lhs_expr_tr));
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
|
@ -3345,9 +3345,9 @@ DynamicModel::fillVarModelTableFromOrigModel() const
|
||||||
diff[model_name] = diff_vec;
|
diff[model_name] = diff_vec;
|
||||||
orig_diff_var[model_name] = orig_diff_var_vec;
|
orig_diff_var[model_name] = orig_diff_var_vec;
|
||||||
}
|
}
|
||||||
var_model_table.setDiff(diff);
|
var_model_table.setDiff(move(diff));
|
||||||
var_model_table.setMaxLags(lags);
|
var_model_table.setMaxLags(move(lags));
|
||||||
var_model_table.setOrigDiffVar(orig_diff_var);
|
var_model_table.setOrigDiffVar(move(orig_diff_var));
|
||||||
}
|
}
|
||||||
|
|
||||||
vector<int>
|
vector<int>
|
||||||
|
@ -3470,9 +3470,9 @@ DynamicModel::fillVarModelTableMatrices()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
var_model_table.setAR(AR);
|
var_model_table.setAR(move(AR));
|
||||||
var_model_table.setA0(A0);
|
var_model_table.setA0(move(A0));
|
||||||
var_model_table.setConstants(constants);
|
var_model_table.setConstants(move(constants));
|
||||||
}
|
}
|
||||||
|
|
||||||
map<string, map<tuple<int, int, int>, expr_t>>
|
map<string, map<tuple<int, int, int>, expr_t>>
|
||||||
|
@ -3575,8 +3575,8 @@ DynamicModel::fillTrendComponentModelTable() const
|
||||||
lhs_expr_tr[model_name] = lhs_expr_t;
|
lhs_expr_tr[model_name] = lhs_expr_t;
|
||||||
rhsr[model_name] = rhs;
|
rhsr[model_name] = rhs;
|
||||||
}
|
}
|
||||||
trend_component_model_table.setRhs(rhsr);
|
trend_component_model_table.setRhs(move(rhsr));
|
||||||
trend_component_model_table.setVals(eqnums, trend_eqnums, lhsr, lhs_expr_tr);
|
trend_component_model_table.setVals(move(eqnums), move(trend_eqnums), move(lhsr), move(lhs_expr_tr));
|
||||||
}
|
}
|
||||||
|
|
||||||
pair<map<string, map<tuple<int, int>, expr_t>>, map<string, map<tuple<int, int>, expr_t>>>
|
pair<map<string, map<tuple<int, int>, expr_t>>, map<string, map<tuple<int, int>, expr_t>>>
|
||||||
|
@ -3688,18 +3688,18 @@ DynamicModel::fillTrendComponentModelTableFromOrigModel() const
|
||||||
diff[model_name] = diff_vec;
|
diff[model_name] = diff_vec;
|
||||||
orig_diff_var[model_name] = orig_diff_var_vec;
|
orig_diff_var[model_name] = orig_diff_var_vec;
|
||||||
}
|
}
|
||||||
trend_component_model_table.setDiff(diff);
|
trend_component_model_table.setDiff(move(diff));
|
||||||
trend_component_model_table.setMaxLags(lags);
|
trend_component_model_table.setMaxLags(move(lags));
|
||||||
trend_component_model_table.setOrigDiffVar(orig_diff_var);
|
trend_component_model_table.setOrigDiffVar(move(orig_diff_var));
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
DynamicModel::fillTrendComponentModelTableAREC(const ExprNode::subst_table_t &diff_subst_table) const
|
DynamicModel::fillTrendComponentModelTableAREC(const ExprNode::subst_table_t &diff_subst_table) const
|
||||||
{
|
{
|
||||||
auto ARr = computeAutoregressiveMatrices();
|
auto ARr = computeAutoregressiveMatrices();
|
||||||
trend_component_model_table.setAR(ARr);
|
trend_component_model_table.setAR(move(ARr));
|
||||||
auto [A0r, A0starr] = computeErrorComponentMatrices(diff_subst_table);
|
auto [A0r, A0starr] = computeErrorComponentMatrices(diff_subst_table);
|
||||||
trend_component_model_table.setA0(A0r, A0starr);
|
trend_component_model_table.setA0(move(A0r), move(A0starr));
|
||||||
}
|
}
|
||||||
|
|
||||||
vector<int>
|
vector<int>
|
||||||
|
|
|
@ -1513,19 +1513,19 @@ ParsingDriver::trend_component_model()
|
||||||
auto its = options_list.string_options.find("trend_component.name");
|
auto its = options_list.string_options.find("trend_component.name");
|
||||||
if (its == options_list.string_options.end())
|
if (its == options_list.string_options.end())
|
||||||
error("You must pass the model_name option to the trend_component_model statement.");
|
error("You must pass the model_name option to the trend_component_model statement.");
|
||||||
auto name = its->second;
|
auto &name = its->second;
|
||||||
|
|
||||||
auto itvs = options_list.vector_str_options.find("trend_component.eqtags");
|
auto itvs = options_list.vector_str_options.find("trend_component.eqtags");
|
||||||
if (itvs == options_list.vector_str_options.end())
|
if (itvs == options_list.vector_str_options.end())
|
||||||
error("You must pass the eqtags option to the trend_component_model statement.");
|
error("You must pass the eqtags option to the trend_component_model statement.");
|
||||||
auto eqtags = itvs->second;
|
auto &eqtags = itvs->second;
|
||||||
|
|
||||||
auto itvs1 = options_list.vector_str_options.find("trend_component.targets");
|
auto itvs1 = options_list.vector_str_options.find("trend_component.targets");
|
||||||
if (itvs1 == options_list.vector_str_options.end())
|
if (itvs1 == options_list.vector_str_options.end())
|
||||||
error("You must pass the targets option to the trend_component_model statement.");
|
error("You must pass the targets option to the trend_component_model statement.");
|
||||||
auto targets = itvs1->second;
|
auto &targets = itvs1->second;
|
||||||
|
|
||||||
mod_file->trend_component_model_table.addTrendComponentModel(name, eqtags, targets);
|
mod_file->trend_component_model_table.addTrendComponentModel(move(name), move(eqtags), move(targets));
|
||||||
options_list.clear();
|
options_list.clear();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1535,19 +1535,19 @@ ParsingDriver::var_model()
|
||||||
auto its = options_list.string_options.find("var.model_name");
|
auto its = options_list.string_options.find("var.model_name");
|
||||||
if (its == options_list.string_options.end())
|
if (its == options_list.string_options.end())
|
||||||
error("You must pass the model_name option to the var_model statement.");
|
error("You must pass the model_name option to the var_model statement.");
|
||||||
auto name = its->second;
|
auto &name = its->second;
|
||||||
|
|
||||||
auto itvs = options_list.vector_str_options.find("var.eqtags");
|
auto itvs = options_list.vector_str_options.find("var.eqtags");
|
||||||
if (itvs == options_list.vector_str_options.end())
|
if (itvs == options_list.vector_str_options.end())
|
||||||
error("You must pass the eqtags option to the var_model statement.");
|
error("You must pass the eqtags option to the var_model statement.");
|
||||||
auto eqtags = itvs->second;
|
auto &eqtags = itvs->second;
|
||||||
|
|
||||||
bool structural = false;
|
bool structural = false;
|
||||||
if (auto itn = options_list.num_options.find("var.structural");
|
if (auto itn = options_list.num_options.find("var.structural");
|
||||||
itn != options_list.num_options.end() && itn->second == "true")
|
itn != options_list.num_options.end() && itn->second == "true")
|
||||||
structural = true;
|
structural = true;
|
||||||
|
|
||||||
mod_file->var_model_table.addVarModel(name, structural, eqtags);
|
mod_file->var_model_table.addVarModel(move(name), structural, move(eqtags));
|
||||||
options_list.clear();
|
options_list.clear();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2788,7 +2788,7 @@ ParsingDriver::pac_model()
|
||||||
auto it = options_list.string_options.find("pac.model_name");
|
auto it = options_list.string_options.find("pac.model_name");
|
||||||
if (it == options_list.string_options.end())
|
if (it == options_list.string_options.end())
|
||||||
error("You must pass the model_name option to the pac_model statement.");
|
error("You must pass the model_name option to the pac_model statement.");
|
||||||
auto name = it->second;
|
auto &name = it->second;
|
||||||
|
|
||||||
string aux_model_name;
|
string aux_model_name;
|
||||||
it = options_list.string_options.find("pac.aux_model_name");
|
it = options_list.string_options.find("pac.aux_model_name");
|
||||||
|
@ -2798,10 +2798,10 @@ ParsingDriver::pac_model()
|
||||||
it = options_list.string_options.find("pac.discount");
|
it = options_list.string_options.find("pac.discount");
|
||||||
if (it == options_list.string_options.end())
|
if (it == options_list.string_options.end())
|
||||||
error("You must pass the discount option to the pac_model statement.");
|
error("You must pass the discount option to the pac_model statement.");
|
||||||
auto discount = it->second;
|
auto &discount = it->second;
|
||||||
check_symbol_is_parameter(discount);
|
check_symbol_is_parameter(discount);
|
||||||
|
|
||||||
mod_file->pac_model_table.addPacModel(name, aux_model_name, discount, pac_growth,
|
mod_file->pac_model_table.addPacModel(move(name), move(aux_model_name), move(discount), pac_growth,
|
||||||
pac_auxname, pac_kind);
|
pac_auxname, pac_kind);
|
||||||
options_list.clear();
|
options_list.clear();
|
||||||
parsing_pac_model = false;
|
parsing_pac_model = false;
|
||||||
|
@ -3356,7 +3356,7 @@ ParsingDriver::add_moment_calibration_item(const string &endo1, const string &en
|
||||||
c.lower_bound = range.first;
|
c.lower_bound = range.first;
|
||||||
c.upper_bound = range.second;
|
c.upper_bound = range.second;
|
||||||
|
|
||||||
moment_calibration_constraints.push_back(c);
|
moment_calibration_constraints.push_back(move(c));
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
|
@ -3385,7 +3385,7 @@ ParsingDriver::add_irf_calibration_item(const string &endo, string periods, cons
|
||||||
c.lower_bound = range.first;
|
c.lower_bound = range.first;
|
||||||
c.upper_bound = range.second;
|
c.upper_bound = range.second;
|
||||||
|
|
||||||
irf_calibration_constraints.push_back(c);
|
irf_calibration_constraints.push_back(move(c));
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
|
@ -3515,7 +3515,7 @@ ParsingDriver::add_shock_group(string name)
|
||||||
ShockGroupsStatement::Group G;
|
ShockGroupsStatement::Group G;
|
||||||
G.name = move(name);
|
G.name = move(name);
|
||||||
G.list = shock_group;
|
G.list = shock_group;
|
||||||
shock_groups.push_back(G);
|
shock_groups.push_back(move(G));
|
||||||
|
|
||||||
shock_group.clear();
|
shock_group.clear();
|
||||||
}
|
}
|
||||||
|
@ -3566,17 +3566,17 @@ ParsingDriver::var_expectation_model()
|
||||||
it = options_list.string_options.find("auxiliary_model_name");
|
it = options_list.string_options.find("auxiliary_model_name");
|
||||||
if (it == options_list.string_options.end())
|
if (it == options_list.string_options.end())
|
||||||
error("You must pass the auxiliary_model_name option to the var_expectation_model statement.");
|
error("You must pass the auxiliary_model_name option to the var_expectation_model statement.");
|
||||||
auto var_model_name = it->second;
|
auto &var_model_name = it->second;
|
||||||
|
|
||||||
it = options_list.string_options.find("model_name");
|
it = options_list.string_options.find("model_name");
|
||||||
if (it == options_list.string_options.end())
|
if (it == options_list.string_options.end())
|
||||||
error("You must pass the model_name option to the var_expectation_model statement.");
|
error("You must pass the model_name option to the var_expectation_model statement.");
|
||||||
auto model_name = it->second;
|
auto &model_name = it->second;
|
||||||
|
|
||||||
it = options_list.num_options.find("horizon");
|
it = options_list.num_options.find("horizon");
|
||||||
if (it == options_list.num_options.end())
|
if (it == options_list.num_options.end())
|
||||||
error("You must pass the horizon option to the var_expectation_model statement.");
|
error("You must pass the horizon option to the var_expectation_model statement.");
|
||||||
auto horizon = it->second;
|
auto &horizon = it->second;
|
||||||
|
|
||||||
if (var_expectation_model_discount)
|
if (var_expectation_model_discount)
|
||||||
{
|
{
|
||||||
|
@ -3596,8 +3596,8 @@ ParsingDriver::var_expectation_model()
|
||||||
if (time_shift > 0)
|
if (time_shift > 0)
|
||||||
error("The 'time_shift' option must be a non-positive integer");
|
error("The 'time_shift' option must be a non-positive integer");
|
||||||
|
|
||||||
mod_file->var_expectation_model_table.addVarExpectationModel(model_name, var_expectation_model_expression,
|
mod_file->var_expectation_model_table.addVarExpectationModel(move(model_name), var_expectation_model_expression,
|
||||||
var_model_name, horizon,
|
move(var_model_name), move(horizon),
|
||||||
var_expectation_model_discount, time_shift);
|
var_expectation_model_discount, time_shift);
|
||||||
|
|
||||||
options_list.clear();
|
options_list.clear();
|
||||||
|
@ -3692,8 +3692,7 @@ void
|
||||||
ParsingDriver::add_pac_target_info_component(expr_t component_expr)
|
ParsingDriver::add_pac_target_info_component(expr_t component_expr)
|
||||||
{
|
{
|
||||||
get<0>(pac_target_info_component) = component_expr;
|
get<0>(pac_target_info_component) = component_expr;
|
||||||
mod_file->pac_model_table.addTargetComponent(pac_target_info_name, pac_target_info_component);
|
mod_file->pac_model_table.addTargetComponent(pac_target_info_name, exchange(pac_target_info_component, {}));
|
||||||
pac_target_info_component = {};
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
|
|
Loading…
Reference in New Issue