cfftmf

Return to Main Contents

NAME

CFFTMF - complex, multiple forward fast Fourier transform

SYNOPSIS

 SUBROUTINE CFFTMF (LOT, JUMP, N, INC, C, LENC, WSAVE, LENSAV,
1                  WORK, LENWRK, IER)

 INTEGER    LOT, JUMP, N, INC, LENC, LENSAV, LENWRK, IER
 COMPLEX    C(LENC)
 REAL       WSAVE(LENSAV), WORK(LENWRK)

DESCRIPTION

 FFTPACK 5.0 routine CFFTMF computes the one-dimensional Fourier 
 transform of multiple periodic sequences within a complex array.  
 This transform is referred to as the forward transform or Fourier 
 analysis, transforming the sequences from physical to spectral 
 space.
 
 This transform is normalized since a call to CFFTMF followed
 by a call to CFFTMB (or vice-versa) reproduces the original
 array  within roundoff error.
 
 Input Arguments
 
 LOT     Integer number of sequences to be transformed within
         array C.
 
 JUMP    Integer increment between the locations, in array C,
         of the first elements of two consecutive sequences
         to be transformed.

 N       Integer length of each sequence to be transformed.  The 
         transform is most efficient when N is a product of 
         small primes.
 
 INC     Integer increment between the locations, in array C,
         of two consecutive elements within the same sequence
         to be transformed.
 
 C       Complex array containing LOT sequences, each having 
         length N, to be transformed.  C can have any number
         of dimensions, but the total number of locations must 
         be at least LENC.
 
 LENC    Integer dimension of C array.  LENC must be at 
         least (LOT-1)*JUMP + INC*(N-1) + 1.

 WSAVE   Real work array of length LENSAV.  WSAVE's contents must 
         be initialized with a call to subroutine CFFTMI before the 
         first call to routine CFFTMF or CFFTMB for a given transform
         length N. 

 LENSAV  Integer dimension of WSAVE array.  LENSAV must be at least 
         2*N + INT(LOG(REAL(N))) + 4.


 WORK    Real work array of dimension LENWRK.
 
 LENWRK  Integer dimension of WORK array.  LENWRK must be at
         least 2*LOT*N.


 Output Arguments
 
 C       For index L*JUMP + J*INC +1 where J=0,...,N-1 and 
         L=0,...,LOT-1, (that is, for the Jth element of the Lth 
         sequence),
 
            C(L*JUMP+J*INC+1) = 
 
            N-1
            SUM C(L*JUMP+K*INC+1)*EXP(-I*J*K*2*PI/N)
            K=0

         where I=SQRT(-1).
 
         At other indices, the output value of C does not differ
         from input.
 
 IER     = 0 successful exit
         = 1 input parameter LENC   not big enough
         = 2 input parameter LENSAV not big enough
         = 3 input parameter LENWRK not big enough
         = 4 input parameters INC,JUMP,N,LOT are not consistent.

             The parameters integers INC, JUMP, N and LOT are 
             consistent if equality 
             I1*INC + J1*JUMP = I2*INC + J2*JUMP for I1,I2 < N 
             and J1,J2 < LOT implies I1=I2 and J1=J2.

             For multiple FFTs to execute correctly, input variables 
             INC, JUMP, N and LOT must be consistent ... otherwise at 
             least one array element mistakenly is transformed more 
             than once.