commons-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Eric Barnhill (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (NUMBERS-10) Revamp "Complex" representation ?
Date Wed, 22 Feb 2017 13:29:44 GMT

    [ https://issues.apache.org/jira/browse/NUMBERS-10?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15878203#comment-15878203
] 

Eric Barnhill commented on NUMBERS-10:
--------------------------------------

Here is what I have come to after reading Java, IEEE and C99 standards

JAVA standard: returns x == x as true if both are NaN
IEEE standard: returns x == x as false if both are NaN

These matters only come up during equals() methods. So I propose just making two equals methods,
equals() and equalsIEEE() . I don't think it is worth making subclasses or enums just to handle
this one issue.

Other than that there are no IEEE standards for complex numbers so that sorts IEEE.

Regarding Nan handling, see the C99 JIRA issue I submit in a few minutes.


> Revamp "Complex" representation ?
> ---------------------------------
>
>                 Key: NUMBERS-10
>                 URL: https://issues.apache.org/jira/browse/NUMBERS-10
>             Project: Commons Numbers
>          Issue Type: Wish
>            Reporter: Gilles
>              Labels: API, design, review
>             Fix For: 1.0
>
>         Attachments: CartesianRepresentation.java, Complex.java, MixedRepresentation.java,
PolarRepresentation.java
>
>
> This is a proposal to enhance the internal representation of complex numbers.
> The purpose is to allow usage of both cartesian and polar representations, with the aim
that calculations are performed (transparently) with the one that will be more accurate and/or
faster. 
> The API would certainly be improved, from
> {code}
>         final Complex c1 = Complex.valueOf(1, 2);
>         final Complex c2 = ComplexUtils.polar2Complex(2, 7);
>         final Complex r = c1.add(c2);
>  {code}
> with the current code, to
> {code}
>         final Complex c1 = Complex.createCartesian(1, 2);
>         final Complex c2 = Complex.createPolar(2, 7);
>         final Complex r = c1.add(c2);
> {code}
> Please refer to the attached files (they are self-documenting, but of course, Javadoc
must be added if the proposal is validated).
> Would there be merit in pursuing in that direction?
> Or is there any show-stopper?



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

Mime
View raw message