Contents


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 Per-
     formance 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  exam-
     ple,  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.