diff --git a/poincare/src/multiplication.cpp b/poincare/src/multiplication.cpp index 16e23a6db..e11cd00b8 100644 --- a/poincare/src/multiplication.cpp +++ b/poincare/src/multiplication.cpp @@ -42,6 +42,7 @@ void Multiplication::turnIntoPositive() { const_cast(operand(i))->turnIntoPositive(); } } + immediateSimplify(); } template @@ -305,7 +306,6 @@ Expression * Multiplication::mergeNegativePower() { if (operand(i)->type() == Type::Power && operand(i)->operand(1)->sign() < 0) { const Expression * e = operand(i); const_cast(e->operand(1))->turnIntoPositive(); - // TODO: should we call const_cast(e->operand(1))->immediateSimplify removeOperand(e, false); m->addOperands(&e, 1); const_cast(e)->immediateSimplify(); diff --git a/poincare/src/power.cpp b/poincare/src/power.cpp index 9e091d0cb..942a7de1f 100644 --- a/poincare/src/power.cpp +++ b/poincare/src/power.cpp @@ -363,8 +363,6 @@ Expression * Power::createDenominator() { if (operand(1)->sign() < 0) { Expression * denominator = clone(); const_cast(denominator->operand(1))->turnIntoPositive(); - - const_cast(denominator->operand(1))->simplify(); if (denominator->operand(1)->type() == Type::Rational && static_cast((Expression *)denominator->operand(1))->isOne()) { delete denominator; return operand(0)->clone();