fix bug in collection of ec vars of pac equation

issue#70
Houtan Bastani 2018-08-27 16:41:25 +02:00
parent 1ae729929b
commit 74dd6a69e9
1 changed files with 4 additions and 12 deletions

View File

@ -5096,18 +5096,10 @@ BinaryOpNode::getPacOptimizingPartHelper(const expr_t arg1, const expr_t arg2,
{ {
auto *testarg2 = dynamic_cast<BinaryOpNode *>(arg2); auto *testarg2 = dynamic_cast<BinaryOpNode *>(arg2);
if (testarg2 != nullptr && testarg2->get_op_code() == BinaryOpcode::minus) if (testarg2 != nullptr && testarg2->get_op_code() == BinaryOpcode::minus)
{ if (dynamic_cast<VariableNode *>(testarg2->get_arg1()) != nullptr
auto *test_arg1 = dynamic_cast<VariableNode *>(testarg2->get_arg1()); && dynamic_cast<VariableNode *>(testarg2->get_arg2()) != nullptr)
auto *test_arg2 = dynamic_cast<VariableNode *>(testarg2->get_arg2()); for (auto it : endogs)
if (test_arg1 != nullptr && test_arg2 != nullptr) ec_params_and_vars.emplace(*(params.begin()), it);
{
test_arg1->collectDynamicVariables(SymbolType::endogenous, endogs);
ec_params_and_vars.emplace(*(params.begin()), *(endogs.begin()));
endogs.clear();
test_arg2->collectDynamicVariables(SymbolType::endogenous, endogs);
ec_params_and_vars.emplace(*(params.begin()), *(endogs.begin()));
}
}
} }
} }