preprocessor: pac_expectation: make growth parameter optional
parent
f480a893d7
commit
2e3638a6c3
25
ExprNode.cc
25
ExprNode.cc
|
@ -7273,19 +7273,24 @@ PacExpectationNode::writeOutput(ostream &output, ExprNodeOutputType output_type,
|
||||||
if (IS_LATEX(output_type))
|
if (IS_LATEX(output_type))
|
||||||
{
|
{
|
||||||
output << "PAC_EXPECTATION" << LEFT_PAR(output_type) << model_name << ", "
|
output << "PAC_EXPECTATION" << LEFT_PAR(output_type) << model_name << ", "
|
||||||
<< var_model_name << ", " << discount_symb_id << ", " << growth_symb_id;
|
<< var_model_name << ", " << discount_symb_id;
|
||||||
|
if (growth_symb_id >= 0)
|
||||||
|
output << ", " << growth_symb_id;
|
||||||
output << RIGHT_PAR(output_type);
|
output << RIGHT_PAR(output_type);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
output <<"M_.pac_expectation." << model_name << ".var_model_name = '" << var_model_name << "';" << endl
|
output <<"M_.pac_expectation." << model_name << ".var_model_name = '" << var_model_name << "';" << endl
|
||||||
<< "M_.pac_expectation." << model_name << ".discount_param_index = "
|
<< "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 << ".growth_name = '"
|
|
||||||
|
if (growth_symb_id >= 0)
|
||||||
|
output << "M_.pac_expectation." << model_name << ".growth_name = '"
|
||||||
<< datatree.symbol_table.getName(growth_symb_id) << "';" << endl
|
<< datatree.symbol_table.getName(growth_symb_id) << "';" << endl
|
||||||
<< "M_.pac_expectation." << model_name << ".growth_neutrality_param_index = "
|
<< "M_.pac_expectation." << model_name << ".growth_neutrality_param_index = "
|
||||||
<< datatree.symbol_table.getTypeSpecificID(growth_param_index) + 1 << ";" << endl
|
<< datatree.symbol_table.getTypeSpecificID(growth_param_index) + 1 << ";" << endl;
|
||||||
<< "M_.pac_expectation." << model_name << ".h0_param_indices = [";
|
|
||||||
|
output << "M_.pac_expectation." << model_name << ".h0_param_indices = [";
|
||||||
for (vector<int>::const_iterator it = h0_indices.begin();
|
for (vector<int>::const_iterator it = h0_indices.begin();
|
||||||
it != h0_indices.end(); it++)
|
it != h0_indices.end(); it++)
|
||||||
{
|
{
|
||||||
|
@ -7547,9 +7552,10 @@ PacExpectationNode::writeJsonOutput(ostream &output,
|
||||||
{
|
{
|
||||||
output << "pac_expectation("
|
output << "pac_expectation("
|
||||||
<< ", model_name = " << model_name
|
<< ", model_name = " << model_name
|
||||||
<< ", " << discount_symb_id
|
<< ", " << discount_symb_id;
|
||||||
<< ", " << growth_symb_id
|
if (growth_symb_id >= 0)
|
||||||
<< ")";
|
output << ", " << growth_symb_id;
|
||||||
|
output << ")";
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
|
@ -7614,12 +7620,15 @@ PacExpectationNode::substitutePacExpectation(map<const PacExpectationNode *, con
|
||||||
datatree.AddVariable(*it, -i)));
|
datatree.AddVariable(*it, -i)));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (growth_symb_id >= 0)
|
||||||
|
{
|
||||||
growth_param_index = datatree.symbol_table.addSymbol(model_name +
|
growth_param_index = datatree.symbol_table.addSymbol(model_name +
|
||||||
"_pac_growth_neutrality_correction",
|
"_pac_growth_neutrality_correction",
|
||||||
eParameter);
|
eParameter);
|
||||||
subExpr = datatree.AddPlus(subExpr,
|
subExpr = datatree.AddPlus(subExpr,
|
||||||
datatree.AddTimes(datatree.AddVariable(growth_param_index),
|
datatree.AddTimes(datatree.AddVariable(growth_param_index),
|
||||||
datatree.AddVariable(growth_symb_id)));
|
datatree.AddVariable(growth_symb_id)));
|
||||||
|
}
|
||||||
|
|
||||||
subst_table[const_cast<PacExpectationNode *>(this)] = dynamic_cast<BinaryOpNode *>(subExpr);
|
subst_table[const_cast<PacExpectationNode *>(this)] = dynamic_cast<BinaryOpNode *>(subExpr);
|
||||||
|
|
||||||
|
|
|
@ -2684,14 +2684,12 @@ ParsingDriver::add_pac_expectation()
|
||||||
if (pac_expectation_discount.empty())
|
if (pac_expectation_discount.empty())
|
||||||
error("pac_expectation: you must pass the discount option");
|
error("pac_expectation: you must pass the discount option");
|
||||||
|
|
||||||
if (pac_expectation_growth.empty())
|
|
||||||
error("pac_expectation: you must pass the growth option");
|
|
||||||
|
|
||||||
int pac_expectation_discount_id =
|
int pac_expectation_discount_id =
|
||||||
mod_file->symbol_table.getID(pac_expectation_discount);
|
mod_file->symbol_table.getID(pac_expectation_discount);
|
||||||
|
|
||||||
int pac_expectation_growth_id =
|
int pac_expectation_growth_id = -1;
|
||||||
mod_file->symbol_table.getID(pac_expectation_growth);
|
if (!pac_expectation_growth.empty())
|
||||||
|
pac_expectation_growth_id = mod_file->symbol_table.getID(pac_expectation_growth);
|
||||||
|
|
||||||
expr_t pac_exp_node = data_tree->AddPacExpectation(pac_expectation_model_name,
|
expr_t pac_exp_node = data_tree->AddPacExpectation(pac_expectation_model_name,
|
||||||
pac_expectation_var_model_name,
|
pac_expectation_var_model_name,
|
||||||
|
|
Loading…
Reference in New Issue