Contents
cfftopt - compute the length of the closest fast FFT
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);
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.