Gunel Jahangirova created NUMBERS-22:
----------------------------------------
Summary: Method reciprocal() in Complex for complex numbers with
parts very close to 0.0
Key: NUMBERS-22
URL: https://issues.apache.org/jira/browse/NUMBERS-22
Project: Commons Numbers
Issue Type: Improvement
Reporter: Gunel Jahangirova
Priority: Minor
I have been redirected here from the issue repository of Apache Commons Math,
as the Complex class will likely be deprecated in favour of its equivalent in
"Commons Numbers".
In class Complex method reciprocal() returns INF only if the real and imaginary
parts are exactly equal to 0.0. In the cases when real and imaginary parts are
double numbers very close to 0.0, it does not hold. For example, if we run this
code
{code}
Complex complex0 = new Complex((-2.44242319E-315));
Complex complex1 = complex0.reciprocal();
{code}
the value of complex1.getReal() will be -Infinity and the value of
complex1.getImaginary() will be NaN, instead of complex1 being equal to INF.
The suggested solutions after the discussion are either checking the equality
to ZERO with some tolerance or to detect if one of the real or imaginary parts
is going to be infinite or NaN and then return the proper result.
--
This message was sent by Atlassian JIRA
(v6.3.15#6346)