change map type for readability
parent
1e071ca499
commit
02ae0af3e5
|
@ -714,13 +714,13 @@ NumConstNode::fillErrorCorrectionRow(int eqn, const vector<int> &nontrend_lhs, c
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
NumConstNode::findConstantEquations(map<expr_t, expr_t> &table) const
|
NumConstNode::findConstantEquations(map<VariableNode *, NumConstNode *> &table) const
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
expr_t
|
expr_t
|
||||||
NumConstNode::replaceVarsInEquation(map<expr_t, expr_t> &table) const
|
NumConstNode::replaceVarsInEquation(map<VariableNode *, NumConstNode *> &table) const
|
||||||
{
|
{
|
||||||
return const_cast<NumConstNode *>(this);
|
return const_cast<NumConstNode *>(this);
|
||||||
}
|
}
|
||||||
|
@ -2024,17 +2024,17 @@ VariableNode::fillErrorCorrectionRow(int eqn, const vector<int> &nontrend_lhs, c
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
VariableNode::findConstantEquations(map<expr_t, expr_t> &table) const
|
VariableNode::findConstantEquations(map<VariableNode *, NumConstNode *> &table) const
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
expr_t
|
expr_t
|
||||||
VariableNode::replaceVarsInEquation(map<expr_t, expr_t> &table) const
|
VariableNode::replaceVarsInEquation(map<VariableNode *, NumConstNode *> &table) const
|
||||||
{
|
{
|
||||||
for (auto & it : table)
|
for (auto & it : table)
|
||||||
if (dynamic_cast<VariableNode *>(it.first)->symb_id == symb_id)
|
if (it.first->symb_id == symb_id)
|
||||||
return dynamic_cast<NumConstNode *>(it.second);
|
return it.second;
|
||||||
return const_cast<VariableNode *>(this);
|
return const_cast<VariableNode *>(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -3857,13 +3857,13 @@ UnaryOpNode::fillErrorCorrectionRow(int eqn, const vector<int> &nontrend_lhs, co
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
UnaryOpNode::findConstantEquations(map<expr_t, expr_t> &table) const
|
UnaryOpNode::findConstantEquations(map<VariableNode *, NumConstNode *> &table) const
|
||||||
{
|
{
|
||||||
arg->findConstantEquations(table);
|
arg->findConstantEquations(table);
|
||||||
}
|
}
|
||||||
|
|
||||||
expr_t
|
expr_t
|
||||||
UnaryOpNode::replaceVarsInEquation(map<expr_t, expr_t> &table) const
|
UnaryOpNode::replaceVarsInEquation(map<VariableNode *, NumConstNode *> &table) const
|
||||||
{
|
{
|
||||||
expr_t argsubst = arg->replaceVarsInEquation(table);
|
expr_t argsubst = arg->replaceVarsInEquation(table);
|
||||||
return buildSimilarUnaryOpNode(argsubst, datatree);
|
return buildSimilarUnaryOpNode(argsubst, datatree);
|
||||||
|
@ -5830,13 +5830,13 @@ BinaryOpNode::fillErrorCorrectionRowHelper(expr_t arg1, expr_t arg2,
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
BinaryOpNode::findConstantEquations(map<expr_t, expr_t> &table) const
|
BinaryOpNode::findConstantEquations(map<VariableNode *, NumConstNode *> &table) const
|
||||||
{
|
{
|
||||||
if (op_code == BinaryOpcode::equal)
|
if (op_code == BinaryOpcode::equal)
|
||||||
if (dynamic_cast<VariableNode *>(arg1) != nullptr && dynamic_cast<NumConstNode *>(arg2) != nullptr)
|
if (dynamic_cast<VariableNode *>(arg1) != nullptr && dynamic_cast<NumConstNode *>(arg2) != nullptr)
|
||||||
table[arg1] = arg2;
|
table[dynamic_cast<VariableNode *>(arg1)] = dynamic_cast<NumConstNode *>(arg2);
|
||||||
else if (dynamic_cast<VariableNode *>(arg2) != nullptr && dynamic_cast<NumConstNode *>(arg1) != nullptr)
|
else if (dynamic_cast<VariableNode *>(arg2) != nullptr && dynamic_cast<NumConstNode *>(arg1) != nullptr)
|
||||||
table[arg2] = arg1;
|
table[dynamic_cast<VariableNode *>(arg2)] = dynamic_cast<NumConstNode *>(arg1);
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
arg1->findConstantEquations(table);
|
arg1->findConstantEquations(table);
|
||||||
|
@ -5845,7 +5845,7 @@ BinaryOpNode::findConstantEquations(map<expr_t, expr_t> &table) const
|
||||||
}
|
}
|
||||||
|
|
||||||
expr_t
|
expr_t
|
||||||
BinaryOpNode::replaceVarsInEquation(map<expr_t, expr_t> &table) const
|
BinaryOpNode::replaceVarsInEquation(map<VariableNode *, NumConstNode *> &table) const
|
||||||
{
|
{
|
||||||
if (op_code == BinaryOpcode::equal)
|
if (op_code == BinaryOpcode::equal)
|
||||||
for (auto & it : table)
|
for (auto & it : table)
|
||||||
|
@ -6858,7 +6858,7 @@ TrinaryOpNode::fillErrorCorrectionRow(int eqn, const vector<int> &nontrend_lhs,
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
TrinaryOpNode::findConstantEquations(map<expr_t, expr_t> &table) const
|
TrinaryOpNode::findConstantEquations(map<VariableNode *, NumConstNode *> &table) const
|
||||||
{
|
{
|
||||||
arg1->findConstantEquations(table);
|
arg1->findConstantEquations(table);
|
||||||
arg2->findConstantEquations(table);
|
arg2->findConstantEquations(table);
|
||||||
|
@ -6866,7 +6866,7 @@ TrinaryOpNode::findConstantEquations(map<expr_t, expr_t> &table) const
|
||||||
}
|
}
|
||||||
|
|
||||||
expr_t
|
expr_t
|
||||||
TrinaryOpNode::replaceVarsInEquation(map<expr_t, expr_t> &table) const
|
TrinaryOpNode::replaceVarsInEquation(map<VariableNode *, NumConstNode *> &table) const
|
||||||
{
|
{
|
||||||
expr_t arg1subst = arg1->replaceVarsInEquation(table);
|
expr_t arg1subst = arg1->replaceVarsInEquation(table);
|
||||||
expr_t arg2subst = arg2->replaceVarsInEquation(table);
|
expr_t arg2subst = arg2->replaceVarsInEquation(table);
|
||||||
|
@ -7511,14 +7511,14 @@ AbstractExternalFunctionNode::fillErrorCorrectionRow(int eqn, const vector<int>
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
AbstractExternalFunctionNode::findConstantEquations(map<expr_t, expr_t> &table) const
|
AbstractExternalFunctionNode::findConstantEquations(map<VariableNode *, NumConstNode *> &table) const
|
||||||
{
|
{
|
||||||
for (auto argument : arguments)
|
for (auto argument : arguments)
|
||||||
argument->findConstantEquations(table);
|
argument->findConstantEquations(table);
|
||||||
}
|
}
|
||||||
|
|
||||||
expr_t
|
expr_t
|
||||||
AbstractExternalFunctionNode::replaceVarsInEquation(map<expr_t, expr_t> &table) const
|
AbstractExternalFunctionNode::replaceVarsInEquation(map<VariableNode *, NumConstNode *> &table) const
|
||||||
{
|
{
|
||||||
vector<expr_t> arguments_subst;
|
vector<expr_t> arguments_subst;
|
||||||
for (auto argument : arguments)
|
for (auto argument : arguments)
|
||||||
|
@ -9040,13 +9040,13 @@ VarExpectationNode::fillErrorCorrectionRow(int eqn, const vector<int> &nontrend_
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
VarExpectationNode::findConstantEquations(map<expr_t, expr_t> &table) const
|
VarExpectationNode::findConstantEquations(map<VariableNode *, NumConstNode *> &table) const
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
expr_t
|
expr_t
|
||||||
VarExpectationNode::replaceVarsInEquation(map<expr_t, expr_t> &table) const
|
VarExpectationNode::replaceVarsInEquation(map<VariableNode *, NumConstNode *> &table) const
|
||||||
{
|
{
|
||||||
return const_cast<VarExpectationNode *>(this);
|
return const_cast<VarExpectationNode *>(this);
|
||||||
}
|
}
|
||||||
|
@ -9560,13 +9560,13 @@ PacExpectationNode::fillErrorCorrectionRow(int eqn, const vector<int> &nontrend_
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
PacExpectationNode::findConstantEquations(map<expr_t, expr_t> &table) const
|
PacExpectationNode::findConstantEquations(map<VariableNode *, NumConstNode *> &table) const
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
expr_t
|
expr_t
|
||||||
PacExpectationNode::replaceVarsInEquation(map<expr_t, expr_t> &table) const
|
PacExpectationNode::replaceVarsInEquation(map<VariableNode *, NumConstNode *> &table) const
|
||||||
{
|
{
|
||||||
return const_cast<PacExpectationNode *>(this);
|
return const_cast<PacExpectationNode *>(this);
|
||||||
}
|
}
|
||||||
|
|
|
@ -34,6 +34,7 @@ using namespace std;
|
||||||
#include "SymbolList.hh"
|
#include "SymbolList.hh"
|
||||||
|
|
||||||
class DataTree;
|
class DataTree;
|
||||||
|
class NumConstNode;
|
||||||
class VariableNode;
|
class VariableNode;
|
||||||
class UnaryOpNode;
|
class UnaryOpNode;
|
||||||
class BinaryOpNode;
|
class BinaryOpNode;
|
||||||
|
@ -613,10 +614,10 @@ class ExprNode
|
||||||
map<tuple<int, int, int>, expr_t> &EC) const = 0;
|
map<tuple<int, int, int>, expr_t> &EC) const = 0;
|
||||||
|
|
||||||
//! Finds equations where a variable is equal to a constant
|
//! Finds equations where a variable is equal to a constant
|
||||||
virtual void findConstantEquations(map<expr_t, expr_t> &table) const = 0;
|
virtual void findConstantEquations(map<VariableNode *, NumConstNode *> &table) const = 0;
|
||||||
|
|
||||||
//! Replaces variables found in findConstantEquations() with their constant values
|
//! Replaces variables found in findConstantEquations() with their constant values
|
||||||
virtual expr_t replaceVarsInEquation(map<expr_t, expr_t> &table) const = 0;
|
virtual expr_t replaceVarsInEquation(map<VariableNode *, NumConstNode *> &table) const = 0;
|
||||||
|
|
||||||
//! Returns true if PacExpectationNode encountered
|
//! Returns true if PacExpectationNode encountered
|
||||||
virtual bool containsPacExpectation(const string &pac_model_name = "") const = 0;
|
virtual bool containsPacExpectation(const string &pac_model_name = "") const = 0;
|
||||||
|
@ -732,8 +733,8 @@ public:
|
||||||
void fillPacExpectationVarInfo(string &model_name_arg, vector<int> &lhs_arg, int max_lag_arg, int pac_max_lag_arg, vector<bool> &nonstationary_arg, int growth_symb_id_arg, int growth_lag, int equation_number_arg) override;
|
void fillPacExpectationVarInfo(string &model_name_arg, vector<int> &lhs_arg, int max_lag_arg, int pac_max_lag_arg, vector<bool> &nonstationary_arg, int growth_symb_id_arg, int growth_lag, int equation_number_arg) override;
|
||||||
void fillAutoregressiveRow(int eqn, const vector<int> &lhs, map<tuple<int, int, int>, expr_t> &AR) const override;
|
void fillAutoregressiveRow(int eqn, const vector<int> &lhs, map<tuple<int, int, int>, expr_t> &AR) const override;
|
||||||
void fillErrorCorrectionRow(int eqn, const vector<int> &nontrend_lhs, const vector<int> &trend_lhs, map<tuple<int, int, int>, expr_t> &EC) const override;
|
void fillErrorCorrectionRow(int eqn, const vector<int> &nontrend_lhs, const vector<int> &trend_lhs, map<tuple<int, int, int>, expr_t> &EC) const override;
|
||||||
void findConstantEquations(map<expr_t, expr_t> &table) const override;
|
void findConstantEquations(map<VariableNode *, NumConstNode *> &table) const override;
|
||||||
expr_t replaceVarsInEquation(map<expr_t, expr_t> &table) const override;
|
expr_t replaceVarsInEquation(map<VariableNode *, NumConstNode *> &table) const override;
|
||||||
bool containsPacExpectation(const string &pac_model_name = "") const override;
|
bool containsPacExpectation(const string &pac_model_name = "") const override;
|
||||||
void getPacOptimizingPart(int lhs_orig_symb_id, pair<int, pair<vector<int>, vector<bool>>> &ec_params_and_vars,
|
void getPacOptimizingPart(int lhs_orig_symb_id, pair<int, pair<vector<int>, vector<bool>>> &ec_params_and_vars,
|
||||||
set<pair<int, pair<int, int>>> ¶ms_and_vars) const override;
|
set<pair<int, pair<int, int>>> ¶ms_and_vars) const override;
|
||||||
|
@ -823,8 +824,8 @@ public:
|
||||||
void fillPacExpectationVarInfo(string &model_name_arg, vector<int> &lhs_arg, int max_lag_arg, int pac_max_lag_arg, vector<bool> &nonstationary_arg, int growth_symb_id_arg, int growth_lag, int equation_number_arg) override;
|
void fillPacExpectationVarInfo(string &model_name_arg, vector<int> &lhs_arg, int max_lag_arg, int pac_max_lag_arg, vector<bool> &nonstationary_arg, int growth_symb_id_arg, int growth_lag, int equation_number_arg) override;
|
||||||
void fillAutoregressiveRow(int eqn, const vector<int> &lhs, map<tuple<int, int, int>, expr_t> &AR) const override;
|
void fillAutoregressiveRow(int eqn, const vector<int> &lhs, map<tuple<int, int, int>, expr_t> &AR) const override;
|
||||||
void fillErrorCorrectionRow(int eqn, const vector<int> &nontrend_lhs, const vector<int> &trend_lhs, map<tuple<int, int, int>, expr_t> &EC) const override;
|
void fillErrorCorrectionRow(int eqn, const vector<int> &nontrend_lhs, const vector<int> &trend_lhs, map<tuple<int, int, int>, expr_t> &EC) const override;
|
||||||
void findConstantEquations(map<expr_t, expr_t> &table) const override;
|
void findConstantEquations(map<VariableNode *, NumConstNode *> &table) const override;
|
||||||
expr_t replaceVarsInEquation(map<expr_t, expr_t> &table) const override;
|
expr_t replaceVarsInEquation(map<VariableNode *, NumConstNode *> &table) const override;
|
||||||
bool containsPacExpectation(const string &pac_model_name = "") const override;
|
bool containsPacExpectation(const string &pac_model_name = "") const override;
|
||||||
void getPacOptimizingPart(int lhs_orig_symb_id, pair<int, pair<vector<int>, vector<bool>>> &ec_params_and_vars,
|
void getPacOptimizingPart(int lhs_orig_symb_id, pair<int, pair<vector<int>, vector<bool>>> &ec_params_and_vars,
|
||||||
set<pair<int, pair<int, int>>> ¶ms_and_vars) const override;
|
set<pair<int, pair<int, int>>> ¶ms_and_vars) const override;
|
||||||
|
@ -942,8 +943,8 @@ public:
|
||||||
void fillPacExpectationVarInfo(string &model_name_arg, vector<int> &lhs_arg, int max_lag_arg, int pac_max_lag_arg, vector<bool> &nonstationary_arg, int growth_symb_id_arg, int growth_lag, int equation_number_arg) override;
|
void fillPacExpectationVarInfo(string &model_name_arg, vector<int> &lhs_arg, int max_lag_arg, int pac_max_lag_arg, vector<bool> &nonstationary_arg, int growth_symb_id_arg, int growth_lag, int equation_number_arg) override;
|
||||||
void fillAutoregressiveRow(int eqn, const vector<int> &lhs, map<tuple<int, int, int>, expr_t> &AR) const override;
|
void fillAutoregressiveRow(int eqn, const vector<int> &lhs, map<tuple<int, int, int>, expr_t> &AR) const override;
|
||||||
void fillErrorCorrectionRow(int eqn, const vector<int> &nontrend_lhs, const vector<int> &trend_lhs, map<tuple<int, int, int>, expr_t> &EC) const override;
|
void fillErrorCorrectionRow(int eqn, const vector<int> &nontrend_lhs, const vector<int> &trend_lhs, map<tuple<int, int, int>, expr_t> &EC) const override;
|
||||||
void findConstantEquations(map<expr_t, expr_t> &table) const override;
|
void findConstantEquations(map<VariableNode *, NumConstNode *> &table) const override;
|
||||||
expr_t replaceVarsInEquation(map<expr_t, expr_t> &table) const override;
|
expr_t replaceVarsInEquation(map<VariableNode *, NumConstNode *> &table) const override;
|
||||||
bool containsPacExpectation(const string &pac_model_name = "") const override;
|
bool containsPacExpectation(const string &pac_model_name = "") const override;
|
||||||
void getPacOptimizingPart(int lhs_orig_symb_id, pair<int, pair<vector<int>, vector<bool>>> &ec_params_and_vars,
|
void getPacOptimizingPart(int lhs_orig_symb_id, pair<int, pair<vector<int>, vector<bool>>> &ec_params_and_vars,
|
||||||
set<pair<int, pair<int, int>>> ¶ms_and_vars) const override;
|
set<pair<int, pair<int, int>>> ¶ms_and_vars) const override;
|
||||||
|
@ -1079,8 +1080,8 @@ public:
|
||||||
int eqn, const vector<int> &nontrend_lhs, const vector<int> &trend_lhs,
|
int eqn, const vector<int> &nontrend_lhs, const vector<int> &trend_lhs,
|
||||||
map<tuple<int, int, int>, expr_t> &AR) const;
|
map<tuple<int, int, int>, expr_t> &AR) const;
|
||||||
void fillErrorCorrectionRow(int eqn, const vector<int> &nontrend_lhs, const vector<int> &trend_lhs, map<tuple<int, int, int>, expr_t> &EC) const override;
|
void fillErrorCorrectionRow(int eqn, const vector<int> &nontrend_lhs, const vector<int> &trend_lhs, map<tuple<int, int, int>, expr_t> &EC) const override;
|
||||||
void findConstantEquations(map<expr_t, expr_t> &table) const override;
|
void findConstantEquations(map<VariableNode *, NumConstNode *> &table) const override;
|
||||||
expr_t replaceVarsInEquation(map<expr_t, expr_t> &table) const override;
|
expr_t replaceVarsInEquation(map<VariableNode *, NumConstNode *> &table) const override;
|
||||||
bool containsPacExpectation(const string &pac_model_name = "") const override;
|
bool containsPacExpectation(const string &pac_model_name = "") const override;
|
||||||
void getPacOptimizingPart(int lhs_orig_symb_id, pair<int, pair<vector<int>, vector<bool>>> &ec_params_and_vars,
|
void getPacOptimizingPart(int lhs_orig_symb_id, pair<int, pair<vector<int>, vector<bool>>> &ec_params_and_vars,
|
||||||
set<pair<int, pair<int, int>>> ¶ms_and_vars) const override;
|
set<pair<int, pair<int, int>>> ¶ms_and_vars) const override;
|
||||||
|
@ -1195,8 +1196,8 @@ public:
|
||||||
void fillPacExpectationVarInfo(string &model_name_arg, vector<int> &lhs_arg, int max_lag_arg, int pac_max_lag_arg, vector<bool> &nonstationary_arg, int growth_symb_id_arg, int growth_lag, int equation_number_arg) override;
|
void fillPacExpectationVarInfo(string &model_name_arg, vector<int> &lhs_arg, int max_lag_arg, int pac_max_lag_arg, vector<bool> &nonstationary_arg, int growth_symb_id_arg, int growth_lag, int equation_number_arg) override;
|
||||||
void fillAutoregressiveRow(int eqn, const vector<int> &lhs, map<tuple<int, int, int>, expr_t> &AR) const override;
|
void fillAutoregressiveRow(int eqn, const vector<int> &lhs, map<tuple<int, int, int>, expr_t> &AR) const override;
|
||||||
void fillErrorCorrectionRow(int eqn, const vector<int> &nontrend_lhs, const vector<int> &trend_lhs, map<tuple<int, int, int>, expr_t> &EC) const override;
|
void fillErrorCorrectionRow(int eqn, const vector<int> &nontrend_lhs, const vector<int> &trend_lhs, map<tuple<int, int, int>, expr_t> &EC) const override;
|
||||||
void findConstantEquations(map<expr_t, expr_t> &table) const override;
|
void findConstantEquations(map<VariableNode *, NumConstNode *> &table) const override;
|
||||||
expr_t replaceVarsInEquation(map<expr_t, expr_t> &table) const override;
|
expr_t replaceVarsInEquation(map<VariableNode *, NumConstNode *> &table) const override;
|
||||||
bool containsPacExpectation(const string &pac_model_name = "") const override;
|
bool containsPacExpectation(const string &pac_model_name = "") const override;
|
||||||
void getPacOptimizingPart(int lhs_orig_symb_id, pair<int, pair<vector<int>, vector<bool>>> &ec_params_and_vars,
|
void getPacOptimizingPart(int lhs_orig_symb_id, pair<int, pair<vector<int>, vector<bool>>> &ec_params_and_vars,
|
||||||
set<pair<int, pair<int, int>>> ¶ms_and_vars) const override;
|
set<pair<int, pair<int, int>>> ¶ms_and_vars) const override;
|
||||||
|
@ -1323,8 +1324,8 @@ public:
|
||||||
void fillPacExpectationVarInfo(string &model_name_arg, vector<int> &lhs_arg, int max_lag_arg, int pac_max_lag_arg, vector<bool> &nonstationary_arg, int growth_symb_id_arg, int growth_lag, int equation_number_arg) override;
|
void fillPacExpectationVarInfo(string &model_name_arg, vector<int> &lhs_arg, int max_lag_arg, int pac_max_lag_arg, vector<bool> &nonstationary_arg, int growth_symb_id_arg, int growth_lag, int equation_number_arg) override;
|
||||||
void fillAutoregressiveRow(int eqn, const vector<int> &lhs, map<tuple<int, int, int>, expr_t> &AR) const override;
|
void fillAutoregressiveRow(int eqn, const vector<int> &lhs, map<tuple<int, int, int>, expr_t> &AR) const override;
|
||||||
void fillErrorCorrectionRow(int eqn, const vector<int> &nontrend_lhs, const vector<int> &trend_lhs, map<tuple<int, int, int>, expr_t> &EC) const override;
|
void fillErrorCorrectionRow(int eqn, const vector<int> &nontrend_lhs, const vector<int> &trend_lhs, map<tuple<int, int, int>, expr_t> &EC) const override;
|
||||||
void findConstantEquations(map<expr_t, expr_t> &table) const override;
|
void findConstantEquations(map<VariableNode *, NumConstNode *> &table) const override;
|
||||||
expr_t replaceVarsInEquation(map<expr_t, expr_t> &table) const override;
|
expr_t replaceVarsInEquation(map<VariableNode *, NumConstNode *> &table) const override;
|
||||||
bool containsPacExpectation(const string &pac_model_name = "") const override;
|
bool containsPacExpectation(const string &pac_model_name = "") const override;
|
||||||
void getPacOptimizingPart(int lhs_orig_symb_id, pair<int, pair<vector<int>, vector<bool>>> &ec_params_and_vars,
|
void getPacOptimizingPart(int lhs_orig_symb_id, pair<int, pair<vector<int>, vector<bool>>> &ec_params_and_vars,
|
||||||
set<pair<int, pair<int, int>>> ¶ms_and_vars) const override;
|
set<pair<int, pair<int, int>>> ¶ms_and_vars) const override;
|
||||||
|
@ -1539,8 +1540,8 @@ public:
|
||||||
void fillPacExpectationVarInfo(string &model_name_arg, vector<int> &lhs_arg, int max_lag_arg, int pac_max_lag_arg, vector<bool> &nonstationary_arg, int growth_symb_id_arg, int growth_lag, int equation_number_arg) override;
|
void fillPacExpectationVarInfo(string &model_name_arg, vector<int> &lhs_arg, int max_lag_arg, int pac_max_lag_arg, vector<bool> &nonstationary_arg, int growth_symb_id_arg, int growth_lag, int equation_number_arg) override;
|
||||||
void fillAutoregressiveRow(int eqn, const vector<int> &lhs, map<tuple<int, int, int>, expr_t> &AR) const override;
|
void fillAutoregressiveRow(int eqn, const vector<int> &lhs, map<tuple<int, int, int>, expr_t> &AR) const override;
|
||||||
void fillErrorCorrectionRow(int eqn, const vector<int> &nontrend_lhs, const vector<int> &trend_lhs, map<tuple<int, int, int>, expr_t> &EC) const override;
|
void fillErrorCorrectionRow(int eqn, const vector<int> &nontrend_lhs, const vector<int> &trend_lhs, map<tuple<int, int, int>, expr_t> &EC) const override;
|
||||||
void findConstantEquations(map<expr_t, expr_t> &table) const override;
|
void findConstantEquations(map<VariableNode *, NumConstNode *> &table) const override;
|
||||||
expr_t replaceVarsInEquation(map<expr_t, expr_t> &table) const override;
|
expr_t replaceVarsInEquation(map<VariableNode *, NumConstNode *> &table) const override;
|
||||||
bool containsPacExpectation(const string &pac_model_name = "") const override;
|
bool containsPacExpectation(const string &pac_model_name = "") const override;
|
||||||
void getPacOptimizingPart(int lhs_orig_symb_id, pair<int, pair<vector<int>, vector<bool>>> &ec_params_and_vars,
|
void getPacOptimizingPart(int lhs_orig_symb_id, pair<int, pair<vector<int>, vector<bool>>> &ec_params_and_vars,
|
||||||
set<pair<int, pair<int, int>>> ¶ms_and_vars) const override;
|
set<pair<int, pair<int, int>>> ¶ms_and_vars) const override;
|
||||||
|
@ -1641,8 +1642,8 @@ public:
|
||||||
void fillPacExpectationVarInfo(string &model_name_arg, vector<int> &lhs_arg, int max_lag_arg, int pac_max_lag_arg, vector<bool> &nonstationary_arg, int growth_symb_id_arg, int growth_lag, int equation_number_arg) override;
|
void fillPacExpectationVarInfo(string &model_name_arg, vector<int> &lhs_arg, int max_lag_arg, int pac_max_lag_arg, vector<bool> &nonstationary_arg, int growth_symb_id_arg, int growth_lag, int equation_number_arg) override;
|
||||||
void fillAutoregressiveRow(int eqn, const vector<int> &lhs, map<tuple<int, int, int>, expr_t> &AR) const override;
|
void fillAutoregressiveRow(int eqn, const vector<int> &lhs, map<tuple<int, int, int>, expr_t> &AR) const override;
|
||||||
void fillErrorCorrectionRow(int eqn, const vector<int> &nontrend_lhs, const vector<int> &trend_lhs, map<tuple<int, int, int>, expr_t> &EC) const override;
|
void fillErrorCorrectionRow(int eqn, const vector<int> &nontrend_lhs, const vector<int> &trend_lhs, map<tuple<int, int, int>, expr_t> &EC) const override;
|
||||||
void findConstantEquations(map<expr_t, expr_t> &table) const override;
|
void findConstantEquations(map<VariableNode *, NumConstNode *> &table) const override;
|
||||||
expr_t replaceVarsInEquation(map<expr_t, expr_t> &table) const override;
|
expr_t replaceVarsInEquation(map<VariableNode *, NumConstNode *> &table) const override;
|
||||||
bool containsPacExpectation(const string &pac_model_name = "") const override;
|
bool containsPacExpectation(const string &pac_model_name = "") const override;
|
||||||
void getPacOptimizingPart(int lhs_orig_symb_id, pair<int, pair<vector<int>, vector<bool>>> &ec_params_and_vars,
|
void getPacOptimizingPart(int lhs_orig_symb_id, pair<int, pair<vector<int>, vector<bool>>> &ec_params_and_vars,
|
||||||
set<pair<int, pair<int, int>>> ¶ms_and_vars) const override;
|
set<pair<int, pair<int, int>>> ¶ms_and_vars) const override;
|
||||||
|
|
|
@ -1925,7 +1925,7 @@ void
|
||||||
ModelTree::simplifyEquations()
|
ModelTree::simplifyEquations()
|
||||||
{
|
{
|
||||||
size_t last_subst_table_size = 0;
|
size_t last_subst_table_size = 0;
|
||||||
map<expr_t, expr_t> subst_table;
|
map<VariableNode *, NumConstNode *> subst_table;
|
||||||
findConstantEquations(subst_table);
|
findConstantEquations(subst_table);
|
||||||
while (subst_table.size() != last_subst_table_size)
|
while (subst_table.size() != last_subst_table_size)
|
||||||
{
|
{
|
||||||
|
@ -1938,7 +1938,7 @@ ModelTree::simplifyEquations()
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
ModelTree::findConstantEquations(map<expr_t, expr_t> &subst_table) const
|
ModelTree::findConstantEquations(map<VariableNode *, NumConstNode *> &subst_table) const
|
||||||
{
|
{
|
||||||
for (auto & equation : equations)
|
for (auto & equation : equations)
|
||||||
equation->findConstantEquations(subst_table);
|
equation->findConstantEquations(subst_table);
|
||||||
|
|
|
@ -352,7 +352,7 @@ public:
|
||||||
//! Simplify model equations: if a variable is equal to a constant, replace that variable elsewhere in the model
|
//! Simplify model equations: if a variable is equal to a constant, replace that variable elsewhere in the model
|
||||||
void simplifyEquations();
|
void simplifyEquations();
|
||||||
//! Find equations where variable is equal to a constant
|
//! Find equations where variable is equal to a constant
|
||||||
void findConstantEquations(map<expr_t, expr_t> &subst_table) const;
|
void findConstantEquations(map<VariableNode *, NumConstNode *> &subst_table) const;
|
||||||
|
|
||||||
void jacobianHelper(ostream &output, int eq_nb, int col_nb, ExprNodeOutputType output_type) const;
|
void jacobianHelper(ostream &output, int eq_nb, int col_nb, ExprNodeOutputType output_type) const;
|
||||||
//! Helper for writing the sparse Hessian or third derivatives in MATLAB and C
|
//! Helper for writing the sparse Hessian or third derivatives in MATLAB and C
|
||||||
|
|
Loading…
Reference in New Issue