[
https://issues.apache.org/jira/browse/MATH-677?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13195965#comment-13195965
]
Sébastien Brisard commented on MATH-677:
----------------------------------------
h4. Refactoring of {{RootsOfUnity}}
{{RootsOfUnity}} is now exposed as a public class in package
{{o.a.c.m.complex}}. Therefore the connection with FFT is lost
* {{isForward()}} must be renamed
* {{computeOmega(int n)}} computes the roots of unity {{exp(-i * k / n)}}. I
think the minus sign is quite unexpected for a self-standing {{RootsOfUnity}}
class (in the FFT context, this minus sign does make perfect sense, of course).
So I propose to change this behavior (remove this minus sign).
> About package "transform"
> -------------------------
>
> Key: MATH-677
> URL: https://issues.apache.org/jira/browse/MATH-677
> Project: Commons Math
> Issue Type: Improvement
> Reporter: Gilles
> Assignee: Sébastien Brisard
> Priority: Minor
> Labels: api-change
> Fix For: 3.0
>
>
> Classes in package "o.a.c.m.transform" might require some changes in order to
> conform to goals set for the next major release.
> Some observations:
> # Exceptions {color:red}done (see below){color}
> ## Should remove use of deprecated "MathRuntimeException"
> ## Should throw more specific "Math...Exception" instances instead of
> standard IAE
> # Interface "RealTransformer" (and implementations) contain non-conformant
> method names (e.g. "inversetransform" instead of "inverseTransform").
> {color:red}Fixed in {{r1208293}}.{color}
> # "FastFourierTransformer":
> ## Methods "mdfft" and "verifyDataSet" take an argument of type "Object" (to
> allow an argument with an unspecified number of dimensions)
> ## The "RootsOfUnity" helper class could be moved to the "complex" package.
> {color:red}Done in {{r1237544}}.{color} New class needs a little bit of
> cleaning up (as well as unit tests), see below.
> ## For clarity, multidimensional transform should be moved to a class of its
> own (and I also wonder whether the "MultiDimensionalComplexMatrix" name is
> not misleading)
> # "FastFourierTransformer", "FastSineTranformer" and "FastCosineTranformer"
> define public methods "tranform2" and "inversetransform2" but they are not
> part of an interface. {color:red}As of {{r1213157}}, these methods have been
> removed, and replaced by factory methods {{create()}} and {{createUnitary()}}
> (FFT) or {{createOrthogonal()}} (FCT, FST).{color}
> # Code uses variables that start with an uppercase. {color:red}Fixed,
> together with various formatting issues.{color}
> # "FastHadamardTransformer" contains illegible developer documentation (see
> Javadoc for protected method "fht"). {color:red}Tried to improve things in
> {{r1208986}}, but things are still a bit obscure. Besides, the link provided
> is broken. Will look into that.{color}
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators:
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira