Revised FFT Core for Iridium

I'm currently working on the Iridium (Math.NET Numerics) Fast Fourier Transformation Implementation, to finally fix known bugs and improve its usability (make it easier to work with). I expect a new Iridium release this week.

What's new

  • Unit Tests: The code base is now tested (including MATLAB consistency and symmetry preservation).
  • Completely redesigned backend (e.g. removed the previous inheritance scheme).
  • Better support for real transformations. New member design, also for complex transformations.
  • Optional Conventions parameter. Controls scaling and integrand exponent behavior, e.g. to behave like Maple (symmetric scaling), MATLAB (asymmetric scaling) or Numeric Recipes (asymmetric scaling & inverse exponent sign).
  • Stateless instead of stateful classes. You don't have to pass over the data on the constructor anymore, but as method parameters instead.
    ...except the precomputation cache. However, the classes are not static so you can get rid of the cache if you don't need it anymore.

The bad news: You'll have to slightly adapt your code if you work with Iridium's FFT implementation. However, the code will only become simpler...