simplify var_model statement calls

issue#70
Houtan Bastani 2018-04-17 10:58:25 +02:00
parent 09e73f3bb4
commit bb1cc0bebf
3 changed files with 19 additions and 28 deletions

View File

@ -378,23 +378,21 @@ VarModelStatement::VarModelStatement(const SymbolList &symbol_list_arg,
}
void
VarModelStatement::getVarModelInfoForVarExpectation(map<string, pair<SymbolList, int> > &var_model_info) const
VarModelStatement::getVarModelInfo(string &var_model_name,
map<string, pair<SymbolList, int> > &var_model_info,
map<string, vector<string> > &var_model_eqtags) const
{
var_model_name = name;
if (symbol_list.empty())
return;
OptionsList::num_options_t::const_iterator it = options_list.num_options.find("var.order");
var_model_info[name] = make_pair(symbol_list, atoi(it->second.c_str()));
}
void
VarModelStatement::getVarModelEqTags(map<string, vector<string> > &var_model_eqtags) const
{
if (!symbol_list.empty())
return;
OptionsList::vec_str_options_t::const_iterator it = options_list.vector_str_options.find("var.eqtags");
var_model_eqtags[name] = it->second;
{
OptionsList::vec_str_options_t::const_iterator it = options_list.vector_str_options.find("var.eqtags");
var_model_eqtags[name] = it->second;
}
else
{
OptionsList::num_options_t::const_iterator it = options_list.num_options.find("var.order");
var_model_info[name] = make_pair(symbol_list, atoi(it->second.c_str()));
}
}
void
@ -414,12 +412,6 @@ VarModelStatement::fillVarModelInfoFromEquations(vector<int> &eqnumber_arg, vect
max_lag = max_lag_arg;
}
void
VarModelStatement::getVarModelName(string &var_model_name) const
{
var_model_name = name;
}
void
VarModelStatement::checkPass(ModFileStructure &mod_file_struct, WarningConsolidation &warnings)
{

View File

@ -159,14 +159,14 @@ public:
const OptionsList &options_list_arg,
const string &name_arg,
const SymbolTable &symbol_table_arg);
void getVarModelInfoForVarExpectation(map<string, pair<SymbolList, int> > &var_model_info) const;
void getVarModelEqTags(map<string, vector<string> > &var_model_eqtags) const;
void getVarModelInfo(string &var_model_name,
map<string, pair<SymbolList, int> > &var_model_info,
map<string, vector<string> > &var_model_eqtags) const;
void fillVarModelInfoFromEquations(vector<int> &eqnumber_arg, vector<int> &lhs_arg,
vector<set<pair<int, int> > > &rhs_arg,
vector<bool> &nonstationary_arg,
vector<bool> &diff_arg, vector<int> &orig_diff_var_arg,
int max_lag_arg);
void getVarModelName(string &var_model_name) const;
virtual void checkPass(ModFileStructure &mod_file_struct, WarningConsolidation &warnings);
virtual void writeOutput(ostream &output, const string &basename, bool minimal_workspace) const;
void createVarModelMFunction(ostream &output, const map<string, set<int> > &var_expectation_functions_to_write) const;

View File

@ -373,7 +373,8 @@ ModFile::transformPass(bool nostrict, bool stochastic, bool compute_xrefs, const
// Var Model
map<string, pair<SymbolList, int> > var_model_info_var_expectation;
map<string, vector<string> > var_model_eq_tags;
map<string, pair<pair<vector<int>, pair<vector<bool>, vector<int> > >, pair<pair<int, vector<bool> >, vector<int> > > > var_model_info_pac_expectation;
map<string, pair<pair<vector<int>, pair<vector<bool>, vector<int> > >, pair<pair<int, vector<bool> >, vector<int> > > >
var_model_info_pac_expectation;
for (vector<Statement *>::const_iterator it = statements.begin();
it != statements.end(); it++)
{
@ -381,9 +382,7 @@ ModFile::transformPass(bool nostrict, bool stochastic, bool compute_xrefs, const
if (vms != NULL)
{
string var_model_name;
vms->getVarModelName(var_model_name);
vms->getVarModelEqTags(var_model_eq_tags);
vms->getVarModelInfoForVarExpectation(var_model_info_var_expectation);
vms->getVarModelInfoForVarExpectation(var_model_name, var_model_info_var_expectation, var_model_eq_tags);
vector<int> eqnumber, lhs, orig_diff_var;
vector<set<pair<int, int> > > rhs;
vector<bool> nonstationary, diff;