diff --git a/apps/calculation/additional_outputs/complex_list_controller.cpp b/apps/calculation/additional_outputs/complex_list_controller.cpp index 9318e89a2..9bfd3e960 100644 --- a/apps/calculation/additional_outputs/complex_list_controller.cpp +++ b/apps/calculation/additional_outputs/complex_list_controller.cpp @@ -1,6 +1,9 @@ #include "complex_list_controller.h" #include "../app.h" #include "../../shared/poincare_helpers.h" +#include +#include +#include "complex_list_controller.h" using namespace Poincare; using namespace Shared; @@ -29,8 +32,9 @@ void ComplexListController::setExpression(Poincare::Expression e) { m_calculationStore.push("abs(z)", context); // Set Complex illustration - float a = Shared::PoincareHelpers::ApproximateToScalar(m_calculationStore.calculationAtIndex(2)->approximateOutput(context), context); - float b = Shared::PoincareHelpers::ApproximateToScalar(m_calculationStore.calculationAtIndex(3)->approximateOutput(context), context); + // Compute a and b as in Expression::hasDefinedComplexApproximation to ensure the same defined result + float a = Shared::PoincareHelpers::ApproximateToScalar(RealPart::Builder(e.clone()), context); + float b = Shared::PoincareHelpers::ApproximateToScalar(ImaginaryPart::Builder(e.clone()), context); m_model.setComplex(std::complex(a,b)); // Reset complex format as before