Contents


NAME

     cfftopt - compute the length of the closest fast FFT

SYNOPSIS

     INTEGER FUNCTION CFFTOPT(LEN)

     INTEGER LEN

     INTEGER*8 FUNCTION CFFTOPT_64(LEN)

     INTEGER*8 LEN

  F95 INTERFACE
     INTEGER FUNCTION CFFTOPT(LEN)

     INTEGER :: LEN

     INTEGER(8) FUNCTION CFFTOPT_64(LEN)

     INTEGER(8) :: LEN

  C INTERFACE
     #include <sunperf.h>

     int cfftopt(int len);

     long cfftopt_64(long len);

PURPOSE

     cfftopt 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.

     CFFTOPT will return an integer no  smaller  than  the  input
     argument N that is the closest number that is the product of
     small primes.  CFFTOPT 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 today will return 52=2*2*13 rather than 51=3*17 because
     the  FFTs  in  Performance Library do not have fast radix 17
     code.  In the future, radix 17 code may be  added  and  then
     N=51 will return 51.