From 9cbbffcdd6ade1779150e2cf71de6d4dbdb0e227 Mon Sep 17 00:00:00 2001 From: Ruben Dashyan Date: Tue, 25 Feb 2020 17:24:54 +0100 Subject: [PATCH] [poincare/multiplication] shallowBeautify builds Power only if necessary --- poincare/src/multiplication.cpp | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/poincare/src/multiplication.cpp b/poincare/src/multiplication.cpp index 8e9ff3160..17302b287 100644 --- a/poincare/src/multiplication.cpp +++ b/poincare/src/multiplication.cpp @@ -383,13 +383,17 @@ Expression Multiplication::shallowBeautify(ExpressionNode::ReductionContext redu || CanSimplifyUnitProduct( unitsExponents, unitsMetrics, - entryUnitExponents, entryUnitNorm, Power::Builder(entryUnit, Rational::Builder(-1)), -1, + entryUnitExponents, entryUnitNorm, entryUnit, -1, bestUnit, bestUnitExponent, bestRemainderExponents, bestRemainderMetrics ); } if (bestUnit.isUninitialized()) { break; } + assert(bestUnitExponent == 1 || bestUnitExponent == -1); + if (bestUnitExponent == -1) { + bestUnit = Power::Builder(bestUnit, Rational::Builder(-1)); + } const int position = unitsAccu.numberOfChildren(); unitsAccu.addChildAtIndexInPlace(bestUnit, position, position); unitsExponents = bestRemainderExponents;