cfftm1d,zfftm1d(3F) cfftm1d,zfftm1d(3F)
cfftm1d, zfftm1d - Multiple 1D, complex-to-complex, Fast Fourier
Transforms.
Fortran :
subroutine cfftm1d( sign, n, p, array, inc, lda, coef )
integer sign, n, p, inc, lda
complex array(lda,p), coef(n+15)
subroutine zfftm1d( sign, n, p, array, inc, lda, coef )
integer sign, n, p, inc, lda
double complex array(lda,p), coef(n+15)
C :
#include <fft.h>
int cfftm1d ( int sign, int n, int p, complex *array,
int inc, int lda, complex *coef);
int zfftm1d ( int sign, int n, int p, zomplex *array,
int inc, int lda, zomplex *coef);
cfftm1d and zfftm1d compute the complex Fourier transform of P complex
sequences of N samples each. The k-th index F(k) of the Transform of an N
sample sequence f(i) is equal to:
F(k) = Sum ( W^(i*k) * f(i) ), for i =0, ..., (N-1)
W = exp( (Sign*2*sqrt(-1)*PI) / N )
The Fourier transforms are computed in-place so the input sequence is
overwritten by the Fourier transform output.
SIGN - Integer specifying which sign to be used for the expression of W
(see above) - must be either +1 or -1.
Unchanged on exit.
N - Integer, the number of samples in each sequence.
Unchanged on exit.
P - Integer, the number of sequences. Unchanged on exit.
ARRAY - Array containing the samples of the sequence to be transformed.
On input, the element "i" of the sequence "j" is stored as A(i*inc,j) in
Fortran , and A[i*inc+j*lda] in C.
On exit, the array is overwritten by its transform.
Page 1
cfftm1d,zfftm1d(3F) cfftm1d,zfftm1d(3F)
INC - Integer, increment between two consecutive elements of a sequence.
Unchanged on exit.
LDA - Integer, leading dimension: increment between the first samples of
two consecutive sequences. Unchanged on exit.
COEFF - Array of at least ( N + 15 ) elements. On entry it contains the
Sines/Cosines and factorization of N. COEFF needs to be initialized with
a call to cfftm1di or zfftm1di. Unchanged on exit.
Example of Calling Sequence
Compute 1D FFTs computed for 64 sequences of 1024 complex values each.
The elements of each sequence are stored with increment (stride) 1, and
the offset between the first element of two succesive sequences (leading
dimension) is 2049.
Fortran
complex array(0:2049-1,0:64-1), coeff(1024+15)
call cfftm1di( 1024, coeff)
call cfftm1d( -1, 1024, 64, array, 1, 2049, coeff)
C
#include <fft.h>
complex array[64*2049], *coeff;
coeff = cfftm1di( 1024, NULL);
cfftm1d( -1, 1024, 64, array, 1, 2049, coeff);
fft, cfftm1di, zfftm1di
PPPPaaaaggggeeee 2222 [ Back ]
|