diff --git a/poincare/src/approximation_helper.cpp b/poincare/src/approximation_helper.cpp index b55a37260..9c498f4ce 100644 --- a/poincare/src/approximation_helper.cpp +++ b/poincare/src/approximation_helper.cpp @@ -11,7 +11,8 @@ extern "C" { namespace Poincare { template bool isNegligeable(T x, T precision, T norm1, T norm2) { - return x <= 10.0*precision && x/norm1 <= precision && x/norm2 <= precision; + T absX = std::fabs(x); + return absX <= 10.0*precision && absX/norm1 <= precision && absX/norm2 <= precision; } template < typename T> T minimalNonNullMagnitudeOfParts(std::complex c) { @@ -48,10 +49,10 @@ template std::complex ApproximationHelper::NeglectRealOrImaginar T magnitude1 = minimalNonNullMagnitudeOfParts(input1); T magnitude2 = minimalNonNullMagnitudeOfParts(input2); T precision = 10.0*Expression::Epsilon(); - if (isNegligeable(std::fabs(result.imag()), precision, magnitude1, magnitude2)) { + if (isNegligeable(result.imag(), precision, magnitude1, magnitude2)) { result.imag(0); } - if (isNegligeable(std::fabs(result.real()), precision, magnitude1, magnitude2)) { + if (isNegligeable(result.real(), precision, magnitude1, magnitude2)) { result.real(0); } return result;