diff --git a/poincare/src/multiplication.cpp b/poincare/src/multiplication.cpp index ff11d453d..4f7c254e3 100644 --- a/poincare/src/multiplication.cpp +++ b/poincare/src/multiplication.cpp @@ -698,7 +698,7 @@ Expression Multiplication::privateShallowReduce(ExpressionNode::ReductionContext } else if (c.type() != ExpressionNode::Type::Rational) { } else if (static_cast(c).isZero()) { // Check that other children don't match inf or unit - if (!recursivelyMatches(IsInfinity, context)) { + if (!recursivelyMatches([](const Expression e, Context * context) { return IsInfinity(e, context) || IsMatrix(e, context); }, context)) { replaceWithInPlace(c); return c; } diff --git a/poincare/test/simplification.cpp b/poincare/test/simplification.cpp index 3c07a9d33..cda277afc 100644 --- a/poincare/test/simplification.cpp +++ b/poincare/test/simplification.cpp @@ -192,7 +192,7 @@ QUIZ_CASE(poincare_simplification_multiplication) { assert_parsed_expression_simplify_to("[[1,2+𝐢][3,4][5,6]]×[[1,2+𝐢,3,4][5,6+𝐢,7,8]]", "[[11+5×𝐢,13+9×𝐢,17+7×𝐢,20+8×𝐢][23,30+7×𝐢,37,44][35,46+11×𝐢,57,68]]"); assert_parsed_expression_simplify_to("[[1,2][3,4]]×[[1,3][5,6]]×[[2,3][4,6]]", "[[82,123][178,267]]"); assert_parsed_expression_simplify_to("π×confidence(π/5,3)[[1,2]]", "π×confidence(π/5,3)×[[1,2]]"); - assert_parsed_expression_simplify_to("0*[[1,0][0,1]]^500", "0*[[1,0][0,1]]^500"); + assert_parsed_expression_simplify_to("0*[[1,0][0,1]]^500", "0×[[1,0][0,1]]^500"); } QUIZ_CASE(poincare_simplification_units) {