commons-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Gunel Jahangirova (JIRA)" <j...@apache.org>
Subject [jira] [Created] (MATH-1414) Method reciprocal() in Complex for complex numbers with parts very close to 0.0
Date Wed, 19 Apr 2017 09:44:41 GMT
Gunel Jahangirova created MATH-1414:
---------------------------------------

             Summary: Method reciprocal() in Complex for complex numbers with parts very close
to 0.0
                 Key: MATH-1414
                 URL: https://issues.apache.org/jira/browse/MATH-1414
             Project: Commons Math
          Issue Type: Improvement
            Reporter: Gunel Jahangirova
            Priority: Minor


In class Complex the method reciprocal() returns INF only if the real and imaginary parts
are equal exactly to 0.0. In case of real and imaginary parts, being double numbers very close
to 0.0, it does not hold. For example, if we run this code

Complex complex0 = new Complex((-2.44242319E-315));
Complex complex1 = complex0.reciprocal();

the value of complex1.getReal() will be -Infinity and the value of complex1.getImaginary()
will be NaN, instead of complex1 being equal to INF.

I think the code in the method 

if (real == 0.0 && imaginary == 0.0) {
            return INF;
}

should be replaced by the equality check with some tolerance (0.01 in this case):

if (equals(this, ZERO, 0.01)) {
        return INF;
}



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)

Mime
View raw message