spec.benchmarks.scimark.fft
Class FFT

java.lang.Object
  extended by spec.benchmarks.scimark.fft.FFT

public class FFT
extends java.lang.Object

Computes FFT's of complex, double precision data where n is an integer power of 2. This appears to be slower than the Radix2 method, but the code is smaller and simpler, and it requires no extra storage.

Author:
Bruce R. Miller bruce.miller@nist.gov,, Derived from GSL (Gnu Scientific Library),, GSL's FFT Code by Brian Gough bjg@vvv.lanl.gov

Constructor Summary
FFT(int id)
           
 
Method Summary
protected  void bitreverse(double[] data)
           
 long inst_main(java.lang.String[] argv)
           
 void inverse(double[] data)
          Compute Inverse Fast Fourier Transform of (complex) data, in place.
protected  int log2(int n)
           
static void main(int id)
          Simple Test routine.
 double[] makeRandom(int n)
          Make a random array of n (complex) elements.
 double measureFFT(int N, double mintime, Random R)
           
 double num_flops(int N)
           
 void run()
           
 double test(double[] data)
          Accuracy check on FFT of data.
protected  void transform_internal(double[] data, int direction)
           
 void transform(double[] data)
          Compute Fast Fourier Transform of (complex) data, in place.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

FFT

public FFT(int id)
Method Detail

num_flops

public final double num_flops(int N)

inst_main

public long inst_main(java.lang.String[] argv)

transform

public void transform(double[] data)
Compute Fast Fourier Transform of (complex) data, in place.


inverse

public void inverse(double[] data)
Compute Inverse Fast Fourier Transform of (complex) data, in place.


test

public double test(double[] data)
Accuracy check on FFT of data. Make a copy of data, Compute the FFT, then the inverse and compare to the original. Returns the rms difference.


makeRandom

public double[] makeRandom(int n)
Make a random array of n (complex) elements.


main

public static void main(int id)
Simple Test routine.


log2

protected int log2(int n)

transform_internal

protected void transform_internal(double[] data,
                                  int direction)

bitreverse

protected void bitreverse(double[] data)

measureFFT

public double measureFFT(int N,
                         double mintime,
                         Random R)

run

public void run()