[ https://issues.apache.org/jira/browse/MATH-667?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Rob Tompkins updated MATH-667: ------------------------------ Fix Version/s: 4.X > Representations of the complex numbers > -------------------------------------- > > Key: MATH-667 > URL: https://issues.apache.org/jira/browse/MATH-667 > Project: Commons Math > Issue Type: Wish > Reporter: Gilles > Priority: Minor > Labels: features > Fix For: 4.X > > > Several issues have been raised about the current behaviour of the "Complex" > class, located in package "o.a.c.m.complex" (e.g. MATH-657, MATH-620). > The ensuing discussion revealed various, sometimes incompatible, requirements > with focus on efficiency or consistency or backwards compatibility or > comparison with other math packages (Octave) or faithfulness to standards > (C99x). > It is thus proposed to create several classes, each with a clearly defined > purpose. > The consensus seems to be that the first task is to implement a new > "BasicComplex" class where the computational formulae (for computing real and > imaginary part of a complex) will be applied directly without worrying about > limiting cases (NaNs and infinities). Doing so will automatically produce a > behaviour similar to the Java {{double}} primitive. It is also assumed that > it will be the most efficient implementation for "normal" use (i.e. not > involving limiting cases). > This task would consist in copying most of the code in the existing "Complex" > class over to "BasicComplex". And similarly with "ComplexTest". Then, in > "BasicComplex", one would remove all variables that refer to NaNs and > infinities together with checks and special assignments, and adapt the unit > tests along the way. > A new "ExtendedComplex" class would inherit from "BasicComplex". This class > would aim at representing the compactified space of the complex numbers (one > point-at-infinity). > A new "C99Complex" class would inherit from "BasicComplex". This class would > aim at implementing the C99x standard. -- This message was sent by Atlassian JIRA (v6.3.15#6346)