CFFT,ZFFT(3) MathKeisan FFT routine CFFT,ZFFT(3)
NAME
cfft, zfft - one-dimensional complex-to-complex FFT
SYNOPSIS
libfft.a
INTEGER isign, n, incx, incy, ntable, nwork
COMPLEX x(incx*(n-1) + 1), y(incy*(n-1) + 1)
REAL scale, table(ntable), work(nwork)
CALL CFFT ( isign, n, scale, x, incx, y, incy, table,
ntable, work, nwork )
INTEGER isign, n, incx, incy, ntable, nwork
COMPLEX(kind=8) x(incx*(n-1) + 1), y(incy*(n-1) + 1)
REAL(kind=8) scale, table(ntable), work(nwork)
CALL ZFFT ( isign, n, scale, x, incx, y, incy, table,
ntable, work, nwork )
libfft_64.a
INTEGER(kind=8) isign, n, incx, incy, ntable, nwork
COMPLEX(kind=8) x(incx*(n-1) + 1), y(incy*(n-1) + 1)
REAL(kind=8) scale, table(ntable), work(nwork)
CALL CFFT ( isign, n, scale, x, incx, y, incy, table,
ntable, work, nwork )
INTEGER(kind=8) isign, n, incx, incy, ntable, nwork
COMPLEX(kind=8) x(incx*(n-1) + 1), y(incy*(n-1) + 1)
REAL(kind=8) scale, table(ntable), work(nwork)
CALL ZFFT ( isign, n, scale, x, incx, y, incy, table,
ntable, work, nwork )
DESCRIPTION
This subroutine computes the one-dimensional discrete Fourier transform
of the given complex array x; the transformed data is stored in the
complex array y. If we take x and y to be dimensioned as x(0:n-1) and
y(0:n-1), the transform is expressed by the following formula:
n-1
y(k) = scale * Sum x(j) * exp(isign*j*k*2*pi*i/n)
j=0
for k = 0, ..., n-1, where i = sqrt(-1).
In order to accomodate multiple calls of the same size to this routine,
an additional initialization step is required prior to the computation
of any transforms. Hence, whenever it is desired to use [CZ]FFT in a
program, it must be called at least twice.
Note that this routine currently provides only serial functionality.
ARGUMENTS
Input
isign Option flag:
If isign = 0, the routine is initialized for the given value of
n.
If isign = (+/-) 1, isign is the sign of the exponential in the
transform.
n Number of data points (n>0).
scale Scaling factor for the transform.
Not used if isign = 0.
x Array of data to be transformed.
Not used if isign = 0.
incx Number of complex values between successive data points in x.
incx != 0.
incy Number of complex values between successive data points in y.
incy != 0.
ntable The size of table. ntable >= 2*n+64.
nwork The size of work. nwork >= 4*n.
Working Storage
table If isign = 0, table is initialized for computing transforms of
length n.
If isign != 0, table must have been initialized by a previous
call with this value of n in which isign was 0.
work Workspace for computing the transform.
Not used if isign = 0.
Output
y Transformed data.
Not used if isign = 0.
SciLib routine CFFT,ZFFT(3)