Class Complex3D

java.lang.Object
ffx.numerics.fft.Complex3D

public class Complex3D extends Object
Compute the 3D FFT of complex, double precision input of arbitrary dimensions via 1D Mixed Radix FFTs.

The location of the input point [i, j, k] within the input array must be:
double real = input[x*nextX + y*nextY + z*nextZ]
double imag = input[x*nextX + y*nextY + z*nextZ + 1]
where
int nextX = 2
int nextY = 2*nX
int nextZ = 2*nX*nY

Since:
1.0
Author:
Michal J. Schnieders
See Also:
  • Constructor Summary

    Constructors
    Constructor
    Description
    Complex3D(int nX, int nY, int nZ)
    Initialize the 3D FFT for complex 3D matrix.
  • Method Summary

    Modifier and Type
    Method
    Description
    void
    convolution(double[] input)
    Perform a convolution.
    void
    fft(double[] input)
    Compute the 3D FFT.
    static int
    iComplex3D(int i, int j, int k, int nX, int nY)
    Determine the index of the complex number in the 1D array from the X, Y and Z indices.
    void
    ifft(double[] input)
    Compute the inverse 3D FFT.
    void
    setRecip(double[] recip)
    Setter for the field recip.

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Constructor Details

    • Complex3D

      public Complex3D(int nX, int nY, int nZ)
      Initialize the 3D FFT for complex 3D matrix.
      Parameters:
      nX - X-dimension.
      nY - Y-dimension.
      nZ - Z-dimension.
  • Method Details

    • iComplex3D

      public static int iComplex3D(int i, int j, int k, int nX, int nY)
      Determine the index of the complex number in the 1D array from the X, Y and Z indices.
      Parameters:
      i - the index along the X-axis.
      j - the index along the Y-axis.
      k - the index along the Z-axis.
      nX - the number of points along the X-axis.
      nY - the number of points along the Y-axis.
      Returns:
      the index of the complex number in the 1D array.
    • convolution

      public void convolution(double[] input)
      Perform a convolution.
      Parameters:
      input - The input array.
    • fft

      public void fft(double[] input)
      Compute the 3D FFT.
      Parameters:
      input - The input array must be of size 2 * nX * nY * nZ.
    • ifft

      public void ifft(double[] input)
      Compute the inverse 3D FFT.
      Parameters:
      input - The input array must be of size 2 * nX * nY * nZ.
    • setRecip

      public void setRecip(double[] recip)
      Setter for the field recip.
      Parameters:
      recip - an array of double.