CFFTMLT,ZFFTMLT(3) MathKeisan FFT routine CFFTMLT,ZFFTMLT(3)
NAME
cfftmlt, zfftmlt - one-dimensional multiple complex-to-complex FFT.
(OpenMP Parallel Support).
SYNOPSIS
libfft.a
INTEGER ifax(32), inc, jump, n, lot, isign
REAL ar((lot-1)*jump + (n-1)*inc + 1), work(4*n*lot),
ai((lot-1)*jump + (n-1)*inc + 1), trigs(2*n)
CALL CFFTMLT ( ar, ai, work, trigs, ifax, inc, jump, n,
lot, isign )
INTEGER ifax(32), inc, jump, n, lot, isign
REAL(kind=8) ar((lot-1)*jump + (n-1)*inc + 1), work(4*n*lot),
ai((lot-1)*jump + (n-1)*inc + 1), trigs(2*n)
CALL ZFFTMLT ( ar, ai, work, trigs, ifax, inc, jump, n,
lot, isign )
libfft_64.a
INTEGER(kind=8) ifax(32), inc, jump, n, lot, isign
REAL(kind=8) ar((lot-1)*jump + (n-1)*inc + 1), work(4*n*lot),
ai((lot-1)*jump + (n-1)*inc + 1), trigs(2*n)
CALL CFFTMLT ( ar, ai, work, trigs, ifax, inc, jump, n,
lot, isign )
INTEGER(kind=8) ifax(32), inc, jump, n, lot, isign
REAL(kind=8) ar((lot-1)*jump + (n-1)*inc + 1), work(4*n*lot),
ai((lot-1)*jump + (n-1)*inc + 1), trigs(2*n)
CALL ZFFTMLT ( ar, ai, work, trigs, ifax, inc, jump, n,
lot, isign )
DESCRIPTION
This subroutine computes in place the one-dimensional discrete Fourier
transform of the lot complex vectors stored in ar and ai, where ar pro-
vides the real part of the input data and ai provides the complex part
of the input data. The transformed data replaces the original contents
of the real arrays ar and ai.
Conceptually, if we consider a complex vector x(0:n-1), then its trans-
form, y(0:n-1), is expressed by the following formula:
n-1
y(k) = Sum x(j) * exp(isign*j*k*2*pi*i/n)
j=0
for k = 0, ..., n-1, where i = sqrt(-1).
Note that both ifax and trigs must be initialized with a call to
(CZ)FTFAX prior to the computation of any transforms. Furthermore, the
values of ifax and trigs are valid only for the value of n specified
for the call to (CZ)FTFAX; if multiple values of n are desired, then
multiple calls to (CZ)FTFAX are required.
Set the OpenMP environmental variable OMP_NUM_THREADS to the number of
threads you would like to use.
ARGUMENTS
Input
ar Real part to be transformed. Contains lot data sets, each having
n data elements.
ai Imaginary part to be transformed. Contains lot data sets, each
having n data elements.
inc Storage increment between successive elements in the same data
set, (inc>0).
jump Storage increment between corresponding elements in successive
data sets, (jump>0).
n Number of data elements in a given data set, (n>0).
lot Number of data sets to transform, (lot>0).
isign Determines the sign of the exponential in the transform.
Working Storage
work Workspace for computing the transform.
trigs A trigonometric table. trigs must be initialized by a call to
(CZ)FTFAX prior to the call to (CZ)FFTMLT.
ifax A factorization table. ifax must be initialized by a call to
(CZ)FTFAX prior to the call to (CZ)FFTMLT.
Output
ar Real part of the transformed data sets.
ai Imaginary part of the transformed data sets.
SciLib routine CFFTMLT,ZFFTMLT(3)