 * ----------------------------------------------------------------
   Here is a nice split-radix, N-dimensional, fast-fourier transform
   by R. C. Singleton (Stanford Research Institute, Sept. 1968)
   which has been converted into C code (7/26/95 by John Beale).

   My very casual tests show this code is significantly faster than the
   Numerical Recipes fourn() routine (25 vs. 36 seconds for a (1024x1024)
   floating point matrix). Also, this code is freely redistributable!

    - 7/26/95 jpb

 * ----------------------------------------------------------------

   Started a minor clean-up of the Fortran-66 code to make it closer
   to Fortran-77 and added comments to help mark-up the logical
   structure and then re-did the f2c conversion.  There is still a
   Fortran look to some of the code especially with incrementing a
   counter and then subtracting 1 for an array subscript, but most
   compilers should optimize around that and it's best not to fiddle
   with too many things.  I've cleaned-up most of the goto/label
   spaghetti so that the resulting code is actually recognizable C
   compared to what f2c produced.

   Added the wrapper function fftn() to remove the hassle of using
   fftradix() directly.  You MUST call fft_free() to free-up allocated
   memory.

   Note that the file re-includes itself with different defines so
   that the both float and double precision version may compiled
   together.

   Don't want the double version?	define FFT_NODOUBLE
   Don't want the float version?	define FFT_NOFLOAT
   Don't want odd radix transforms?	define FFT_RADIX4

   The suffix `f' indicates a float vs. double version.

   Made fftradix() a local (static) function since fftn() should be
   used instead.

   See INSTALL

   1 Aug July 1995	Mark Olesen <olesen@me.QueensU.CA>

   TODO:
   - someone should take a look at getting `max_factors' and
     `max_perm' calculated correctly in fftn()
 * ----------------------------------------------------------------

   Change list and documentation contained within the code.

   Added <Michael.Steffens@mbox.muk.uni-hannover.de> Fortran 90
   module and re-released with a version number this time!

   If there are any more fixes/changes needed then become a
   self-appointer maintainer (for a short while) and keep the
   versions on the net up-to-date.

   As for me, I intend to graduate in the VERY near future, so
   all email to me will be unread for a very long
   time until my University account gets closed and then it will start
   to bounce.

   Cheers,
   Mark Olesen (22 Feb 1997)

   P.S.
   Moved the main documentation to the header file so it's available
   if the source is part of a library somewhere.

   Removed the GNU Public License (which I had added anyhow) so as
   to make it available through netlib.  Added suitable copyright
   notices and disclaimers.

   Mark Olesen (23 Feb 1997)
------------------------------- end-of-file ------------------------------
