- java.lang.Object
-
- org.ojalgo.data.transform.DiscreteFourierTransform
-
- org.ojalgo.data.transform.DiscreteFourierTransform.FFT
-
- All Implemented Interfaces:
DataTransform<Access1D<?>,MatrixStore<ComplexNumber>>
- Enclosing class:
- DiscreteFourierTransform
static final class DiscreteFourierTransform.FFT extends DiscreteFourierTransform
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class org.ojalgo.data.transform.DiscreteFourierTransform
DiscreteFourierTransform.Directive, DiscreteFourierTransform.FFT, DiscreteFourierTransform.FullMatrix, DiscreteFourierTransform.Single
-
-
Field Summary
Fields Modifier and Type Field Description private int[]myBitReversedIndicesprivate intmyStagesprivate ComplexNumber[]myUnitRootsprivate double[]myWorkImprivate double[]myWorkRe-
Fields inherited from class org.ojalgo.data.transform.DiscreteFourierTransform
DEFAULT, INVERSE
-
-
Constructor Summary
Constructors Constructor Description FFT(int size)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description private static voiddoStages(int nbStages, ComplexNumber[] roots, double[] workRe, double[] workIm)Perform the remaining stage calculations (stage>=1).private static voidsetup0(double[] input, double[] workRe, double[] workIm)private static voidsetup0(Access1D<?> input, boolean complex, boolean conjugate, double[] workRe, double[] workIm)private static voidsetup1(double[] input, double[] workRe, double[] workIm)private static voidsetup1(Access1D<?> input, boolean complex, boolean conjugate, double[] workRe, double[] workIm)private static voidsetup2(double[] input, int[] reversed, double[] workRe, double[] workIm)private static voidsetup2(Access1D<?> input, boolean complex, boolean conjugate, int[] reversed, double[] workRe, double[] workIm)private static voidtoOutput(double[] workRe, double[] workIm, boolean conjugate, boolean scale, Mutate2D.ModifiableReceiver<ComplexNumber> output)Copy the results to the output data structure.private static voidtoWork(int index1, int index2, double re1, double im1, double re2, double im2, double[] workRe, double[] workIm)MatrixStore<ComplexNumber>transform(double... input)voidtransform(Access1D<?> input, DiscreteFourierTransform.Directive directive, Mutate2D.ModifiableReceiver<ComplexNumber> output)private static voidupdate(double[] workRe, double[] workIm, int index1, int index2)private static voidupdate(double[] workRe, double[] workIm, int index1, int index2, ComplexNumber scalar)-
Methods inherited from class org.ojalgo.data.transform.DiscreteFourierTransform
generate, getBitReversedIndices, getUnitRoots, inverse, inverse, inverse2D, lookupIndices, lookupRoots, newInstance, newVandermonde, newVandermondeMatrix, sample, sample, shift, size, toPowerOf2Exponent, transform, transform, transform2D, transform2D
-
-
-
-
Field Detail
-
myBitReversedIndices
private final int[] myBitReversedIndices
-
myStages
private final int myStages
-
myUnitRoots
private final ComplexNumber[] myUnitRoots
-
myWorkIm
private final double[] myWorkIm
-
myWorkRe
private final double[] myWorkRe
-
-
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)
-
transform
public void transform(Access1D<?> input, DiscreteFourierTransform.Directive directive, Mutate2D.ModifiableReceiver<ComplexNumber> output)
- Specified by:
transformin classDiscreteFourierTransform
-
transform
public MatrixStore<ComplexNumber> transform(double... input)
- Overrides:
transformin classDiscreteFourierTransform
-
-