Class DiscreteFourierTransform.FFT

    • Field Detail

      • myBitReversedIndices

        private final int[] myBitReversedIndices
      • myStages

        private final int myStages
      • myWorkIm

        private final double[] myWorkIm
      • myWorkRe

        private final double[] myWorkRe
    • Constructor Detail

      • FFT

        FFT​(int size)
    • Method Detail

      • doStages

        private static void doStages​(int nbStages,
                                     ComplexNumber[] roots,
                                     double[] workRe,
                                     double[] workIm)
        Perform the remaining stage calculations (stage>=1). This is essentially "the algorithm".
      • setup0

        private static void setup0​(Access1D<?> input,
                                   boolean complex,
                                   boolean conjugate,
                                   double[] workRe,
                                   double[] workIm)
      • setup0

        private static void setup0​(double[] input,
                                   double[] workRe,
                                   double[] workIm)
      • setup1

        private static void setup1​(Access1D<?> input,
                                   boolean complex,
                                   boolean conjugate,
                                   double[] workRe,
                                   double[] workIm)
      • setup1

        private static void setup1​(double[] input,
                                   double[] workRe,
                                   double[] workIm)
      • setup2

        private static void setup2​(Access1D<?> input,
                                   boolean complex,
                                   boolean conjugate,
                                   int[] reversed,
                                   double[] workRe,
                                   double[] workIm)
      • setup2

        private static void setup2​(double[] input,
                                   int[] reversed,
                                   double[] workRe,
                                   double[] workIm)
      • toOutput

        private static void toOutput​(double[] workRe,
                                     double[] workIm,
                                     boolean conjugate,
                                     boolean scale,
                                     Mutate2D.ModifiableReceiver<ComplexNumber> output)
        Copy the results to the output data structure. In the copy-process transformations are performed.
      • toWork

        private static void toWork​(int index1,
                                   int index2,
                                   double re1,
                                   double im1,
                                   double re2,
                                   double im2,
                                   double[] workRe,
                                   double[] workIm)
      • update

        private static void update​(double[] workRe,
                                   double[] workIm,
                                   int index1,
                                   int index2)
      • update

        private static void update​(double[] workRe,
                                   double[] workIm,
                                   int index1,
                                   int index2,
                                   ComplexNumber scalar)