From 74dd6a69e94b1a7d2969e6a8135eb922a86d3769 Mon Sep 17 00:00:00 2001 From: Houtan Bastani Date: Mon, 27 Aug 2018 16:41:25 +0200 Subject: [PATCH] fix bug in collection of ec vars of pac equation --- src/ExprNode.cc | 16 ++++------------ 1 file changed, 4 insertions(+), 12 deletions(-) diff --git a/src/ExprNode.cc b/src/ExprNode.cc index 8b7f5760..edbae186 100644 --- a/src/ExprNode.cc +++ b/src/ExprNode.cc @@ -5096,18 +5096,10 @@ BinaryOpNode::getPacOptimizingPartHelper(const expr_t arg1, const expr_t arg2, { auto *testarg2 = dynamic_cast(arg2); if (testarg2 != nullptr && testarg2->get_op_code() == BinaryOpcode::minus) - { - auto *test_arg1 = dynamic_cast(testarg2->get_arg1()); - auto *test_arg2 = dynamic_cast(testarg2->get_arg2()); - if (test_arg1 != nullptr && test_arg2 != nullptr) - { - 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())); - } - } + if (dynamic_cast(testarg2->get_arg1()) != nullptr + && dynamic_cast(testarg2->get_arg2()) != nullptr) + for (auto it : endogs) + ec_params_and_vars.emplace(*(params.begin()), it); } }