[poincare/multiplication] shallowBeautify builds Power only if necessary

This commit is contained in:
Ruben Dashyan
2020-02-25 17:24:54 +01:00
committed by Émilie Feral
parent 94bad10ddb
commit 9cbbffcdd6

View File

@@ -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;