preprocessor: pac_expectation: add equation number info
parent
2e3638a6c3
commit
beeef36a24
|
@ -3389,7 +3389,7 @@ DynamicModel::fillPacExpectationVarInfo(string &var_model_name,
|
|||
vector<bool> &nonstationary)
|
||||
{
|
||||
for (size_t i = 0; i < equations.size(); i++)
|
||||
equations[i]->fillPacExpectationVarInfo(var_model_name, lhs, rhs, nonstationary);
|
||||
equations[i]->fillPacExpectationVarInfo(var_model_name, lhs, rhs, nonstationary, i);
|
||||
}
|
||||
|
||||
void
|
||||
|
|
35
ExprNode.cc
35
ExprNode.cc
|
@ -579,7 +579,7 @@ NumConstNode::setVarExpectationIndex(map<string, pair<SymbolList, int> > &var_mo
|
|||
}
|
||||
|
||||
void
|
||||
NumConstNode::fillPacExpectationVarInfo(string &var_model_name_arg, vector<int> &lhs_arg, map<int, set<int > > &rhs_arg, vector<bool> &nonstationary_arg)
|
||||
NumConstNode::fillPacExpectationVarInfo(string &var_model_name_arg, vector<int> &lhs_arg, map<int, set<int > > &rhs_arg, vector<bool> &nonstationary_arg, int equation_number_arg)
|
||||
{
|
||||
}
|
||||
|
||||
|
@ -1635,7 +1635,7 @@ VariableNode::setVarExpectationIndex(map<string, pair<SymbolList, int> > &var_mo
|
|||
}
|
||||
|
||||
void
|
||||
VariableNode::fillPacExpectationVarInfo(string &var_model_name_arg, vector<int> &lhs_arg, map<int, set<int > > &rhs_arg, vector<bool> &nonstationary_arg)
|
||||
VariableNode::fillPacExpectationVarInfo(string &var_model_name_arg, vector<int> &lhs_arg, map<int, set<int > > &rhs_arg, vector<bool> &nonstationary_arg, int equation_number_arg)
|
||||
{
|
||||
}
|
||||
|
||||
|
@ -3032,9 +3032,9 @@ UnaryOpNode::setVarExpectationIndex(map<string, pair<SymbolList, int> > &var_mod
|
|||
}
|
||||
|
||||
void
|
||||
UnaryOpNode::fillPacExpectationVarInfo(string &var_model_name_arg, vector<int> &lhs_arg, map<int, set<int > > &rhs_arg, vector<bool> &nonstationary_arg)
|
||||
UnaryOpNode::fillPacExpectationVarInfo(string &var_model_name_arg, vector<int> &lhs_arg, map<int, set<int > > &rhs_arg, vector<bool> &nonstationary_arg, int equation_number_arg)
|
||||
{
|
||||
arg->fillPacExpectationVarInfo(var_model_name_arg, lhs_arg, rhs_arg, nonstationary_arg);
|
||||
arg->fillPacExpectationVarInfo(var_model_name_arg, lhs_arg, rhs_arg, nonstationary_arg, equation_number_arg);
|
||||
}
|
||||
|
||||
bool
|
||||
|
@ -4568,10 +4568,10 @@ BinaryOpNode::setVarExpectationIndex(map<string, pair<SymbolList, int> > &var_mo
|
|||
}
|
||||
|
||||
void
|
||||
BinaryOpNode::fillPacExpectationVarInfo(string &var_model_name_arg, vector<int> &lhs_arg, map<int, set<int > > &rhs_arg, vector<bool> &nonstationary_arg)
|
||||
BinaryOpNode::fillPacExpectationVarInfo(string &var_model_name_arg, vector<int> &lhs_arg, map<int, set<int > > &rhs_arg, vector<bool> &nonstationary_arg, int equation_number_arg)
|
||||
{
|
||||
arg1->fillPacExpectationVarInfo(var_model_name_arg, lhs_arg, rhs_arg, nonstationary_arg);
|
||||
arg2->fillPacExpectationVarInfo(var_model_name_arg, lhs_arg, rhs_arg, nonstationary_arg);
|
||||
arg1->fillPacExpectationVarInfo(var_model_name_arg, lhs_arg, rhs_arg, nonstationary_arg, equation_number_arg);
|
||||
arg2->fillPacExpectationVarInfo(var_model_name_arg, lhs_arg, rhs_arg, nonstationary_arg, equation_number_arg);
|
||||
}
|
||||
|
||||
bool
|
||||
|
@ -5344,11 +5344,11 @@ TrinaryOpNode::setVarExpectationIndex(map<string, pair<SymbolList, int> > &var_m
|
|||
}
|
||||
|
||||
void
|
||||
TrinaryOpNode::fillPacExpectationVarInfo(string &var_model_name_arg, vector<int> &lhs_arg, map<int, set<int > > &rhs_arg, vector<bool> &nonstationary_arg)
|
||||
TrinaryOpNode::fillPacExpectationVarInfo(string &var_model_name_arg, vector<int> &lhs_arg, map<int, set<int > > &rhs_arg, vector<bool> &nonstationary_arg, int equation_number_arg)
|
||||
{
|
||||
arg1->fillPacExpectationVarInfo(var_model_name_arg, lhs_arg, rhs_arg, nonstationary_arg);
|
||||
arg2->fillPacExpectationVarInfo(var_model_name_arg, lhs_arg, rhs_arg, nonstationary_arg);
|
||||
arg3->fillPacExpectationVarInfo(var_model_name_arg, lhs_arg, rhs_arg, nonstationary_arg);
|
||||
arg1->fillPacExpectationVarInfo(var_model_name_arg, lhs_arg, rhs_arg, nonstationary_arg, equation_number_arg);
|
||||
arg2->fillPacExpectationVarInfo(var_model_name_arg, lhs_arg, rhs_arg, nonstationary_arg, equation_number_arg);
|
||||
arg3->fillPacExpectationVarInfo(var_model_name_arg, lhs_arg, rhs_arg, nonstationary_arg, equation_number_arg);
|
||||
}
|
||||
|
||||
bool
|
||||
|
@ -5718,10 +5718,10 @@ AbstractExternalFunctionNode::setVarExpectationIndex(map<string, pair<SymbolList
|
|||
}
|
||||
|
||||
void
|
||||
AbstractExternalFunctionNode::fillPacExpectationVarInfo(string &var_model_name_arg, vector<int> &lhs_arg, map<int, set<int > > &rhs_arg, vector<bool> &nonstationary_arg)
|
||||
AbstractExternalFunctionNode::fillPacExpectationVarInfo(string &var_model_name_arg, vector<int> &lhs_arg, map<int, set<int > > &rhs_arg, vector<bool> &nonstationary_arg, int equation_number_arg)
|
||||
{
|
||||
for (vector<expr_t>::const_iterator it = arguments.begin(); it != arguments.end(); it++)
|
||||
(*it)->fillPacExpectationVarInfo(var_model_name_arg, lhs_arg, rhs_arg, nonstationary_arg);
|
||||
(*it)->fillPacExpectationVarInfo(var_model_name_arg, lhs_arg, rhs_arg, nonstationary_arg, equation_number_arg);
|
||||
}
|
||||
|
||||
bool
|
||||
|
@ -7189,7 +7189,7 @@ VarExpectationNode::setVarExpectationIndex(map<string, pair<SymbolList, int> > &
|
|||
}
|
||||
|
||||
void
|
||||
VarExpectationNode::fillPacExpectationVarInfo(string &var_model_name_arg, vector<int> &lhs_arg, map<int, set<int > > &rhs_arg, vector<bool> &nonstationary_arg)
|
||||
VarExpectationNode::fillPacExpectationVarInfo(string &var_model_name_arg, vector<int> &lhs_arg, map<int, set<int > > &rhs_arg, vector<bool> &nonstationary_arg, int equation_number_arg)
|
||||
{
|
||||
}
|
||||
|
||||
|
@ -7282,7 +7282,8 @@ PacExpectationNode::writeOutput(ostream &output, ExprNodeOutputType output_type,
|
|||
|
||||
output <<"M_.pac_expectation." << model_name << ".var_model_name = '" << var_model_name << "';" << endl
|
||||
<< "M_.pac_expectation." << model_name << ".discount_param_index = "
|
||||
<< datatree.symbol_table.getTypeSpecificID(discount_symb_id) + 1 << ";" << endl;
|
||||
<< datatree.symbol_table.getTypeSpecificID(discount_symb_id) + 1 << ";" << endl
|
||||
<< "M_.pac_expectation." << model_name << ".equation_number = " << equation_number + 1 << ";" << endl;
|
||||
|
||||
if (growth_symb_id >= 0)
|
||||
output << "M_.pac_expectation." << model_name << ".growth_name = '"
|
||||
|
@ -7559,14 +7560,14 @@ PacExpectationNode::writeJsonOutput(ostream &output,
|
|||
}
|
||||
|
||||
void
|
||||
PacExpectationNode::fillPacExpectationVarInfo(string &var_model_name_arg, vector<int> &lhs_arg,
|
||||
map<int, set<int > > &rhs_arg, vector<bool> &nonstationary_arg)
|
||||
PacExpectationNode::fillPacExpectationVarInfo(string &var_model_name_arg, vector<int> &lhs_arg, map<int, set<int > > &rhs_arg, vector<bool> &nonstationary_arg, int equation_number_arg)
|
||||
{
|
||||
if (var_model_name != var_model_name_arg)
|
||||
return;
|
||||
|
||||
lhs = lhs_arg;
|
||||
z_vec = rhs_arg;
|
||||
equation_number = equation_number_arg;
|
||||
|
||||
for (vector<bool>::const_iterator it = nonstationary_arg.begin();
|
||||
it != nonstationary_arg.end(); it++)
|
||||
|
|
20
ExprNode.hh
20
ExprNode.hh
|
@ -490,7 +490,7 @@ class ExprNode
|
|||
virtual bool isVarModelReferenced(const string &model_info_name) const = 0;
|
||||
|
||||
//! Fills var_model info for pac_expectation node
|
||||
virtual void fillPacExpectationVarInfo(string &var_model_name, vector<int> &lhs, map<int, set<int > > &rhs_arg, vector<bool> &nonstationary_arg) = 0;
|
||||
virtual void fillPacExpectationVarInfo(string &var_model_name, vector<int> &lhs, map<int, set<int > > &rhs_arg, vector<bool> &nonstationary_arg, int equation_number_arg) = 0;
|
||||
|
||||
//! Fills map
|
||||
virtual void getEndosAndMaxLags(map<string, int> &model_endos_and_lags) const = 0;
|
||||
|
@ -560,7 +560,7 @@ public:
|
|||
virtual expr_t removeTrendLeadLag(map<int, expr_t> trend_symbols_map) const;
|
||||
virtual bool isInStaticForm() const;
|
||||
virtual void setVarExpectationIndex(map<string, pair<SymbolList, int> > &var_model_info);
|
||||
virtual void fillPacExpectationVarInfo(string &var_model_name_arg, vector<int> &lhs_arg, map<int, set<int > > &rhs_arg, vector<bool> &nonstationary_arg);
|
||||
virtual void fillPacExpectationVarInfo(string &var_model_name_arg, vector<int> &lhs_arg, map<int, set<int > > &rhs_arg, vector<bool> &nonstationary_arg, int equation_number_arg);
|
||||
virtual bool isVarModelReferenced(const string &model_info_name) const;
|
||||
virtual void getEndosAndMaxLags(map<string, int> &model_endos_and_lags) const;
|
||||
virtual expr_t substituteStaticAuxiliaryVariable() const;
|
||||
|
@ -639,7 +639,7 @@ public:
|
|||
virtual expr_t removeTrendLeadLag(map<int, expr_t> trend_symbols_map) const;
|
||||
virtual bool isInStaticForm() const;
|
||||
virtual void setVarExpectationIndex(map<string, pair<SymbolList, int> > &var_model_info);
|
||||
virtual void fillPacExpectationVarInfo(string &var_model_name_arg, vector<int> &lhs_arg, map<int, set<int > > &rhs_arg, vector<bool> &nonstationary_arg);
|
||||
virtual void fillPacExpectationVarInfo(string &var_model_name_arg, vector<int> &lhs_arg, map<int, set<int > > &rhs_arg, vector<bool> &nonstationary_arg, int equation_number_arg);
|
||||
virtual bool isVarModelReferenced(const string &model_info_name) const;
|
||||
virtual void getEndosAndMaxLags(map<string, int> &model_endos_and_lags) const;
|
||||
//! Substitute auxiliary variables by their expression in static model
|
||||
|
@ -741,7 +741,7 @@ public:
|
|||
virtual expr_t removeTrendLeadLag(map<int, expr_t> trend_symbols_map) const;
|
||||
virtual bool isInStaticForm() const;
|
||||
virtual void setVarExpectationIndex(map<string, pair<SymbolList, int> > &var_model_info);
|
||||
virtual void fillPacExpectationVarInfo(string &var_model_name_arg, vector<int> &lhs_arg, map<int, set<int > > &rhs_arg, vector<bool> &nonstationary_arg);
|
||||
virtual void fillPacExpectationVarInfo(string &var_model_name_arg, vector<int> &lhs_arg, map<int, set<int > > &rhs_arg, vector<bool> &nonstationary_arg, int equation_number_arg);
|
||||
virtual bool isVarModelReferenced(const string &model_info_name) const;
|
||||
virtual void getEndosAndMaxLags(map<string, int> &model_endos_and_lags) const;
|
||||
//! Substitute auxiliary variables by their expression in static model
|
||||
|
@ -861,7 +861,7 @@ public:
|
|||
expr_t getNonZeroPartofEquation() const;
|
||||
virtual bool isInStaticForm() const;
|
||||
virtual void setVarExpectationIndex(map<string, pair<SymbolList, int> > &var_model_info);
|
||||
virtual void fillPacExpectationVarInfo(string &var_model_name_arg, vector<int> &lhs_arg, map<int, set<int > > &rhs_arg, vector<bool> &nonstationary_arg);
|
||||
virtual void fillPacExpectationVarInfo(string &var_model_name_arg, vector<int> &lhs_arg, map<int, set<int > > &rhs_arg, vector<bool> &nonstationary_arg, int equation_number_arg);
|
||||
virtual bool isVarModelReferenced(const string &model_info_name) const;
|
||||
virtual void getEndosAndMaxLags(map<string, int> &model_endos_and_lags) const;
|
||||
//! Substitute auxiliary variables by their expression in static model
|
||||
|
@ -949,7 +949,7 @@ public:
|
|||
virtual expr_t removeTrendLeadLag(map<int, expr_t> trend_symbols_map) const;
|
||||
virtual bool isInStaticForm() const;
|
||||
virtual void setVarExpectationIndex(map<string, pair<SymbolList, int> > &var_model_info);
|
||||
virtual void fillPacExpectationVarInfo(string &var_model_name_arg, vector<int> &lhs_arg, map<int, set<int > > &rhs_arg, vector<bool> &nonstationary_arg);
|
||||
virtual void fillPacExpectationVarInfo(string &var_model_name_arg, vector<int> &lhs_arg, map<int, set<int > > &rhs_arg, vector<bool> &nonstationary_arg, int equation_number_arg);
|
||||
virtual bool isVarModelReferenced(const string &model_info_name) const;
|
||||
virtual void getEndosAndMaxLags(map<string, int> &model_endos_and_lags) const;
|
||||
//! Substitute auxiliary variables by their expression in static model
|
||||
|
@ -1045,7 +1045,7 @@ public:
|
|||
virtual expr_t removeTrendLeadLag(map<int, expr_t> trend_symbols_map) const;
|
||||
virtual bool isInStaticForm() const;
|
||||
virtual void setVarExpectationIndex(map<string, pair<SymbolList, int> > &var_model_info);
|
||||
virtual void fillPacExpectationVarInfo(string &var_model_name_arg, vector<int> &lhs_arg, map<int, set<int > > &rhs_arg, vector<bool> &nonstationary_arg);
|
||||
virtual void fillPacExpectationVarInfo(string &var_model_name_arg, vector<int> &lhs_arg, map<int, set<int > > &rhs_arg, vector<bool> &nonstationary_arg, int equation_number_arg);
|
||||
virtual bool isVarModelReferenced(const string &model_info_name) const;
|
||||
virtual void getEndosAndMaxLags(map<string, int> &model_endos_and_lags) const;
|
||||
//! Substitute auxiliary variables by their expression in static model
|
||||
|
@ -1234,7 +1234,7 @@ public:
|
|||
virtual expr_t removeTrendLeadLag(map<int, expr_t> trend_symbols_map) const;
|
||||
virtual bool isInStaticForm() const;
|
||||
virtual void setVarExpectationIndex(map<string, pair<SymbolList, int> > &var_model_info);
|
||||
virtual void fillPacExpectationVarInfo(string &var_model_name_arg, vector<int> &lhs_arg, map<int, set<int > > &rhs_arg, vector<bool> &nonstationary_arg);
|
||||
virtual void fillPacExpectationVarInfo(string &var_model_name_arg, vector<int> &lhs_arg, map<int, set<int > > &rhs_arg, vector<bool> &nonstationary_arg, int equation_number_arg);
|
||||
virtual bool isVarModelReferenced(const string &model_info_name) const;
|
||||
virtual void getEndosAndMaxLags(map<string, int> &model_endos_and_lags) const;
|
||||
virtual expr_t substituteStaticAuxiliaryVariable() const;
|
||||
|
@ -1250,7 +1250,7 @@ private:
|
|||
vector<int> lhs;
|
||||
map<int, set<int > > z_vec; // lag -> set< symb_id > (all vars that appear at a given lag)
|
||||
vector<int> h0_indices, h1_indices;
|
||||
int growth_param_index;
|
||||
int growth_param_index, equation_number;
|
||||
public:
|
||||
PacExpectationNode(DataTree &datatree_arg, const string &model_name, const string &var_model_name,
|
||||
const int discount_arg, const int growth_arg);
|
||||
|
@ -1305,7 +1305,7 @@ public:
|
|||
virtual expr_t removeTrendLeadLag(map<int, expr_t> trend_symbols_map) const;
|
||||
virtual bool isInStaticForm() const;
|
||||
virtual void setVarExpectationIndex(map<string, pair<SymbolList, int> > &var_model_info);
|
||||
virtual void fillPacExpectationVarInfo(string &var_model_name_arg, vector<int> &lhs_arg, map<int, set<int > > &rhs_arg, vector<bool> &nonstationary_arg);
|
||||
virtual void fillPacExpectationVarInfo(string &var_model_name_arg, vector<int> &lhs_arg, map<int, set<int > > &rhs_arg, vector<bool> &nonstationary_arg, int equation_number_arg);
|
||||
virtual bool isVarModelReferenced(const string &model_info_name) const;
|
||||
virtual void getEndosAndMaxLags(map<string, int> &model_endos_and_lags) const;
|
||||
virtual expr_t substituteStaticAuxiliaryVariable() const;
|
||||
|
|
Loading…
Reference in New Issue