Overview | Package | Class | Use | Tree | Deprecated | Index | Help
| JTransforms 2.4
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## edu.emory.mathcs.jtransforms.fft
Class DoubleFFT_1D

    java.lang.Object
      edu.emory.mathcs.jtransforms.fft.DoubleFFT_1D

    public class DoubleFFT_1D

extends Object

Computes 1D Discrete Fourier Transform (DFT) of complex and real, double precision data. The size of the data can be an arbitrary number. This is a parallel implementation of split-radix and mixed-radix algorithms optimized for SMP systems.
This code is derived from General Purpose FFT Package written by Takuya Ooura (http://www.kurims.kyoto-u.ac.jp/~ooura/fft.html) and from JFFTPack written by Baoshe Zhang (http://jfftpack.sourceforge.net/)

Author:
  Piotr Wendykier (piotr.wendykier@gmail.com)

Constructor Summary
`DoubleFFT_1D(int n)` Creates new instance of DoubleFFT_1D.

Method Summary
`void` | `complexForward(double[] a)` Computes 1D forward DFT of complex data leaving the result in `a`.
`void` | `complexForward(double[] a, int offa)` Computes 1D forward DFT of complex data leaving the result in `a`.
`void` | `complexInverse(double[] a, boolean scale)` Computes 1D inverse DFT of complex data leaving the result in `a`.
`void` | `complexInverse(double[] a, int offa, boolean scale)` Computes 1D inverse DFT of complex data leaving the result in `a`.
`void` | `realForward(double[] a)` Computes 1D forward DFT of real data leaving the result in `a` .
`void` | `realForward(double[] a, int offa)` Computes 1D forward DFT of real data leaving the result in `a` .
`void` | `realForwardFull(double[] a)` Computes 1D forward DFT of real data leaving the result in `a` .
`void` | `realForwardFull(double[] a, int offa)` Computes 1D forward DFT of real data leaving the result in `a` .
`void` | `realInverse(double[] a, boolean scale)` Computes 1D inverse DFT of real data leaving the result in `a` .
`void` | `realInverse(double[] a, int offa, boolean scale)` Computes 1D inverse DFT of real data leaving the result in `a` .
`void` | `realInverseFull(double[] a, boolean scale)` Computes 1D inverse DFT of real data leaving the result in `a` .
`void` | `realInverseFull(double[] a, int offa, boolean scale)` Computes 1D inverse DFT of real data leaving the result in `a` .

Methods inherited from class java.lang.Object
`equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Constructor Detail

### DoubleFFT_1D

    public DoubleFFT_1D(int n)

  Creates new instance of DoubleFFT_1D.

  Parameters:
    `n` - size of data

Method Detail

### complexForward

    public void complexForward(double[] a)

  Computes 1D forward DFT of complex data leaving the result in `a`. Complex number is stored as two double values in sequence: the real and imaginary part, i.e. the size of the input array must be greater or equal 2*n. The physical layout of the input data has to be as follows:

       a[2*k] = Re[k],
       a[2*k+1] = Im[k], 0<=k<n

  Parameters:
    `a` - data to transform

### complexForward

    public void complexForward(double[] a,
                               int offa)

  Computes 1D forward DFT of complex data leaving the result in `a`. Complex number is stored as two double values in sequence: the real and imaginary part, i.e. the size of the input array must be greater or equal 2*n. The physical layout of the input data has to be as follows:

       a[offa+2*k] = Re[k],
       a[offa+2*k+1] = Im[k], 0<=k<n

  Parameters:
    `a` - data to transform
    `offa` - index of the first element in array `a`

### complexInverse

    public void complexInverse(double[] a,
                               boolean scale)

  Computes 1D inverse DFT of complex data leaving the result in `a`. Complex number is stored as two double values in sequence: the real and imaginary part, i.e. the size of the input array must be greater or equal 2*n. The physical layout of the input data has to be as follows:

       a[2*k] = Re[k],
       a[2*k+1] = Im[k], 0<=k<n

  Parameters:
    `a` - data to transform
    `scale` - if true then scaling is performed

### complexInverse

    public void complexInverse(double[] a,
                               int offa,
                               boolean scale)

  Computes 1D inverse DFT of complex data leaving the result in `a`. Complex number is stored as two double values in sequence: the real and imaginary part, i.e. the size of the input array must be greater or equal 2*n. The physical layout of the input data has to be as follows:

       a[offa+2*k] = Re[k],
       a[offa+2*k+1] = Im[k], 0<=k<n

  Parameters:
    `a` - data to transform
    `offa` - index of the first element in array `a`
    `scale` - if true then scaling is performed

### realForward

    public void realForward(double[] a)

  Computes 1D forward DFT of real data leaving the result in `a` . The physical layout of the output data is as follows:
  if n is even then

       a[2*k] = Re[k], 0<=k<n/2
       a[2*k+1] = Im[k], 0<k<n/2
       a[1] = Re[n/2]

  if n is odd then

       a[2*k] = Re[k], 0<=k<(n+1)/2
       a[2*k+1] = Im[k], 0<k<(n-1)/2
       a[1] = Im[(n-1)/2]

  This method computes only half of the elements of the real transform. The other half satisfies the symmetry condition. If you want the full real forward transform, use `realForwardFull`. To get back the original data, use `realInverse` on the output of this method.

  Parameters:
    `a` - data to transform

### realForward

    public void realForward(double[] a,
                            int offa)

  Computes 1D forward DFT of real data leaving the result in `a` . The physical layout of the output data is as follows:
  if n is even then

       a[offa+2*k] = Re[k], 0<=k<n/2
       a[offa+2*k+1] = Im[k], 0<k<n/2
       a[offa+1] = Re[n/2]

  if n is odd then

       a[offa+2*k] = Re[k], 0<=k<(n+1)/2
       a[offa+2*k+1] = Im[k], 0<k<(n-1)/2
       a[offa+1] = Im[(n-1)/2]

  This method computes only half of the elements of the real transform. The other half satisfies the symmetry condition. If you want the full real forward transform, use `realForwardFull`. To get back the original data, use `realInverse` on the output of this method.

  Parameters:
    `a` - data to transform
    `offa` - index of the first element in array `a`

### realForwardFull

    public void realForwardFull(double[] a)

  Computes 1D forward DFT of real data leaving the result in `a` . This method computes the full real forward transform, i.e. you will get the same result as from `complexForward` called with all imaginary parts equal 0. Because the result is stored in `a`, the size of the input array must greater or equal 2*n, with only the first n elements filled with real data. To get back the original data, use `complexInverse` on the output of this method.

  Parameters:
    `a` - data to transform

### realForwardFull

    public void realForwardFull(double[] a,
                                int offa)

  Computes 1D forward DFT of real data leaving the result in `a` . This method computes the full real forward transform, i.e. you will get the same result as from `complexForward` called with all imaginary part equal 0. Because the result is stored in `a`, the size of the input array must greater or equal 2*n, with only the first n elements filled with real data. To get back the original data, use `complexInverse` on the output of this method.

  Parameters:
    `a` - data to transform
    `offa` - index of the first element in array `a`

### realInverse

    public void realInverse(double[] a,
                            boolean scale)

  Computes 1D inverse DFT of real data leaving the result in `a` . The physical layout of the input data has to be as follows:
  if n is even then

       a[2*k] = Re[k], 0<=k<n/2
       a[2*k+1] = Im[k], 0<k<n/2
       a[1] = Re[n/2]

  if n is odd then

       a[2*k] = Re[k], 0<=k<(n+1)/2
       a[2*k+1] = Im[k], 0<k<(n-1)/2
       a[1] = Im[(n-1)/2]

  This method computes only half of the elements of the real transform. The other half satisfies the symmetry condition. If you want the full real inverse transform, use `realInverseFull`.

  Parameters:
    `a` - data to transform
    `scale` - if true then scaling is performed

### realInverse

    public void realInverse(double[] a,
                            int offa,
                            boolean scale)

  Computes 1D inverse DFT of real data leaving the result in `a` . The physical layout of the input data has to be as follows:
  if n is even then

       a[offa+2*k] = Re[k], 0<=k<n/2
       a[offa+2*k+1] = Im[k], 0<k<n/2
       a[offa+1] = Re[n/2]

  if n is odd then

       a[offa+2*k] = Re[k], 0<=k<(n+1)/2
       a[offa+2*k+1] = Im[k], 0<k<(n-1)/2
       a[offa+1] = Im[(n-1)/2]

  This method computes only half of the elements of the real transform. The other half satisfies the symmetry condition. If you want the full real inverse transform, use `realInverseFull`.

  Parameters:
    `a` - data to transform
    `offa` - index of the first element in array `a`
    `scale` - if true then scaling is performed

### realInverseFull

    public void realInverseFull(double[] a,
                                boolean scale)

  Computes 1D inverse DFT of real data leaving the result in `a` . This method computes the full real inverse transform, i.e. you will get the same result as from `complexInverse` called with all imaginary part equal 0. Because the result is stored in `a`, the size of the input array must greater or equal 2*n, with only the first n elements filled with real data.

  Parameters:
    `a` - data to transform
    `scale` - if true then scaling is performed

### realInverseFull

    public void realInverseFull(double[] a,
                                int offa,
                                boolean scale)

  Computes 1D inverse DFT of real data leaving the result in `a` . This method computes the full real inverse transform, i.e. you will get the same result as from `complexInverse` called with all imaginary part equal 0. Because the result is stored in `a`, the size of the input array must greater or equal 2*n, with only the first n elements filled with real data.

  Parameters:
    `a` - data to transform
    `offa` - index of the first element in array `a`
    `scale` - if true then scaling is performed

Overview | Package | Class | Use | Tree | Deprecated | Index | Help
| JTransforms 2.4
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD