diff --git a/poincare/src/power.cpp b/poincare/src/power.cpp index cfd0076c0..9d7de229d 100644 --- a/poincare/src/power.cpp +++ b/poincare/src/power.cpp @@ -553,7 +553,9 @@ Expression Power::shallowReduce(Context & context, Preferences::AngleUnit angleU } } // (a)^(1/2) with a < 0 --> i*(-a)^(1/2) + // WARNING: this rule true only if a real (ex: (-1*i)^(1/2) != i*i^(1/2) if (!letPowerAtRoot + && childAtIndex(0).isReal(context, angleUnit) && childAtIndex(1).type() == ExpressionNode::Type::Rational && childAtIndex(1).convert().isHalf()) { diff --git a/poincare/test/power.cpp b/poincare/test/power.cpp index 50fc3871b..027d828a6 100644 --- a/poincare/test/power.cpp +++ b/poincare/test/power.cpp @@ -52,6 +52,7 @@ QUIZ_CASE(poincare_power_simplify) { assert_parsed_expression_simplify_to("(12^4*x)^(0.5)", "144*R(x)"); assert_parsed_expression_simplify_to("R(32)", "4*R(2)"); assert_parsed_expression_simplify_to("R(-1)", "I"); + assert_parsed_expression_simplify_to("R(-1*R(-1))", "R(2)/2-R(2)/2*I"); assert_parsed_expression_simplify_to("R(3^2)", "3"); assert_parsed_expression_simplify_to("2^(2+P)", "4*2^P"); assert_parsed_expression_simplify_to("R(5513219850886344455940081)", "2348024669991");