Simplify x/(1/y) in x*y

issue#70
Sébastien Villemot 2019-12-11 19:07:52 +01:00
parent 1d3265acb7
commit f24f28b2b2
No known key found for this signature in database
GPG Key ID: 2CECE9350ECEBE4A
1 changed files with 5 additions and 0 deletions

View File

@ -273,6 +273,11 @@ DataTree::AddDivide(expr_t iArg1, expr_t iArg2) noexcept(false)
if (iArg1 == iArg2)
return One;
// Simplify x/(1/y) in x*y
if (auto barg2 = dynamic_cast<BinaryOpNode *>(iArg2);
barg2 && barg2->op_code == BinaryOpcode::divide && barg2->arg1 == One)
return AddTimes(iArg1, barg2->arg2);
return AddBinaryOp(iArg1, BinaryOpcode::divide, iArg2);
}