dfftopt


NAME

dfftopt - compute the length of the closest fast FFT


SYNOPSIS

  INTEGER FUNCTION DFFTOPT( LEN)
  INTEGER LEN
 
  INTEGER*8 FUNCTION DFFTOPT_64( LEN)
  INTEGER*8 LEN
 

F95 INTERFACE

  INTEGER FUNCTION DFFTOPT( LEN)
  INTEGER :: LEN
 
  INTEGER(8) FUNCTION DFFTOPT_64( LEN)
  INTEGER(8) :: LEN
 

C INTERFACE

#include <sunperf.h>

int dfftopt(int len);

long dfftopt_64(long len);


PURPOSE

dfftopt computes the length of the closest fast FFT. Fast Fourier transform algorithms, including those used in Performance Library, work best with vector lengths that are products of small primes. For example, an FFT of length 32=2**5 will run faster than an FFT of prime length 31 because 32 is a product of small primes and 31 is not. If your application is such that you can taper or zero pad your vector to a larger length then this function may help you select a better length and run your FFT faster.

DFFTOPT will return an integer no smaller than the input argument N that is the closest number that is the product of small primes. DFFTOPT will return 16 for an input of N=16 and return 18=2*3*3 for an input of N=17.

Note that the length computed here is not guaranteed to be optimal, only to be a product of small primes. Also, the value returned may change as the underlying FFTs become capable of handling larger primes. For example, passing in N=51 to day will return 52=2*2*13 rather than 51=3*17 because the FFTs in Performance Li brary do not have fast radix 17 code. In the future, radix 17 code may be added and then N=51 will return 51.


ARGUMENTS