## org.das2.qds.math.fft.jnt.ComplexDoubleFFT

Abstract Class representing FFT's of complex, double precision data. Concrete classes are typically named ComplexDoubleFFT_method, implement the FFT using some particular method.

Complex data is represented by 2 double values in sequence: the real and imaginary parts. Thus, in the default case (i0=0, stride=2), N data points is represented by a double array dimensioned to 2*N. To support 2D (and higher) transforms, an offset, i0 (where the first element starts) and stride (the distance from the real part of one value, to the next: at least 2 for complex values) can be supplied. The physical layout in the array data, of the mathematical data d[i] is as follows:

        Re(d[i]) = data[i0 + stride*i]
        Im(d[i]) = data[i0 + stride*i+1]

The transformed data is returned in the original data array in wrap-around order.

## ComplexDoubleFFT( int n )

Create an FFT for transforming n points of complex, double precision data.

## backtransform

backtransform( org.das2.qds.math.fft.ComplexArray.Double data ) → void

### Parameters

data - a ComplexArray.Double

### Returns:

void (returns nothing)
[search for examples] [view on GitHub] [view on old javadoc] [view source]

## backtransform

backtransform( org.das2.qds.math.fft.ComplexArray.Double data, int i0, int stride ) → void

Compute the (unnomalized) inverse FFT of data, leaving it in place.

### Parameters

data - a ComplexArray.Double
i0 - an int
stride - an int

### Returns:

void (returns nothing)
[search for examples] [view on GitHub] [view on old javadoc] [view source]

## getInstance

getInstance( int n ) → org.das2.qds.math.fft.jnt.ComplexDoubleFFT

Creates an instance of a subclass of ComplexDoubleFFT appropriate for data of n elements.

### Parameters

n - an int

### Returns:

org.das2.qds.math.fft.jnt.ComplexDoubleFFT
[search for examples] [view on GitHub] [view on old javadoc] [view source]

## inverse

inverse( org.das2.qds.math.fft.ComplexArray.Double data ) → void

Compute the (normalized) inverse FFT of data, leaving it in place.

### Parameters

data - a ComplexArray.Double

### Returns:

void (returns nothing)
[search for examples] [view on GitHub] [view on old javadoc] [view source]

## normalization

normalization( ) → double

Return the normalization factor. Multiply the elements of the backtransform'ed data to get the normalized inverse.

### Returns:

double
[search for examples] [view on GitHub] [view on old javadoc] [view source]

## transform

transform( org.das2.qds.math.fft.ComplexArray.Double data ) → void

Compute the Fast Fourier Transform of data leaving the result in data. The array data must be dimensioned (at least) 2*n, consisting of alternating real and imaginary parts.

### Parameters

data - a ComplexArray.Double

### Returns:

void (returns nothing)
[search for examples] [view on GitHub] [view on old javadoc] [view source]

## transform

transform( org.das2.qds.math.fft.ComplexArray.Double data, int i0, int stride ) → void

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]

### Parameters

data - a ComplexArray.Double
i0 - an int
stride - an int

### Returns:

void (returns nothing)
[search for examples] [view on GitHub] [view on old javadoc] [view source]