math.fourierTransforms.interleaved
Class ComplexDoubleFFT_Mixed

java.lang.Object
  extended by math.fourierTransforms.interleaved.ComplexDoubleFFT
      extended by math.fourierTransforms.interleaved.ComplexDoubleFFT_Mixed

public class ComplexDoubleFFT_Mixed
extends ComplexDoubleFFT

Computes FFT's of complex, double precision data of arbitrary length n. This class uses the Mixed Radix method; it has special methods to handle factors 2, 3, 4, 5, 6 and 7, as well as a general factor.

This method appears to be faster than the Radix2 method, when both methods apply, but requires extra storage (which ComplexDoubleFFT_Mixed manages itself).

See ComplexDoubleFFT for details of data layout.

Author:
Bruce R. Miller bruce.miller@nist.gov, Contribution of the National Institute of Standards and Technology,, not subject to copyright., Derived from GSL (Gnu Scientific Library), GSL's FFT Code by Brian Gough bjg@vvv.lanl.gov, Since GSL is released under, GPL,, this package must also be.

Constructor Summary
ComplexDoubleFFT_Mixed(int n)
           
 
Method Summary
 void backtransform(double[] data, int i0, int stride)
          Compute the (unnomalized) inverse FFT of data, leaving it in place.
 void transform(double[] data, int i0, int stride)
          Compute the Fast Fourier Transform of data leaving the result in data.
 
Methods inherited from class math.fourierTransforms.interleaved.ComplexDoubleFFT
backtransform, getInstance, inverse, inverse, normalization, toWraparoundOrder, toWraparoundOrder, transform
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

ComplexDoubleFFT_Mixed

public ComplexDoubleFFT_Mixed(int n)
Method Detail

transform

public void transform(double[] data,
                      int i0,
                      int stride)
Description copied from class: ComplexDoubleFFT
Compute the Fast Fourier Transform of data leaving the result in data. The array data must contain the data points in the following locations:
    Re(d[i]) = data[i0 + stride*i]
    Im(d[i]) = data[i0 + stride*i+1]

Specified by:
transform in class ComplexDoubleFFT

backtransform

public void backtransform(double[] data,
                          int i0,
                          int stride)
Description copied from class: ComplexDoubleFFT
Compute the (unnomalized) inverse FFT of data, leaving it in place. The frequency domain data must be in wrap-around order, and be stored in the following locations:
    Re(D[i]) = data[i0 + stride*i]
    Im(D[i]) = data[i0 + stride*i+1]

Specified by:
backtransform in class ComplexDoubleFFT