HP MLIB User's Guide Vol. 2 7th Ed.

Chapter 5 Fast Fourier Transforms 547
Two-dimensional FFT C2DFFT/Z2DFFT
Name C2DFFT/Z2DFFT
Two-dimensional FFT
Purpose Given an array of complex data, these subprograms compute the
two-dimensional forward or inverse DFT. Two companion subprograms,
S2DFFT and D2DFFT, perform the same operation but with the complex data
presented with real and imaginary parts in separate real arrays.
The two-dimensional forward discrete Fourier transform of z(n
1
,n
2
), for
n
1
= 1, 2, ..., l
1
and n
2
= 1, 2, ..., l
2
, is defined by
for m
1
= 1, 2, ..., l
1
, m
2
= 1, 2, ..., l
2
, and .
Alternatively, the two-dimensional inverse discrete Fourier transform of
Z(m
1
,m
2
), for m
1
= 1, 2, ..., l
1
and m
2
= 1, 2, ..., l
2
, is defined by
for n
1
= 1, 2, ..., l
1
and n
2
= 1, 2, ..., l
2
.
For best performance, these subprograms require that l
1
and l
2
be products of
powers of 2, 3, and 5, that is, of the form
where p
k
,q
k
,r
k
0, k=1,2.
Usage VECLIB:
INTEGER*4 l1, l2, ldz, iopt, ier
COMPLEX*8 z(ldz, l2)
CALL C2DFFT(z, l1, l2, ldz, iopt, ier)
INTEGER*4 l1, l2, ldz, iopt, ier
COMPLEX*16 z(ldz, l2)
CALL Z2DFFT(z, l1, l2, ldz, iopt, ier)
Zm
1
m
2
,() zn
1
n
2
,()e
2 πim
1
1()n
1
1()l
1
e
2 πim
2
1()n
2
1()l
2
n
2
1=
l
2
n
1
1=
l
1
=
i 1=
zn
1
n
2
,()
1
l
1
l
2
---------
Zm
1
m
2
,()e
+2πim
1
1()n
1
1()l
1
e
+2πim
2
1()n
2
1()l
2
m
2
1=
l
2
m
1
1=
l
1
=
l
k
2
p
k
3
q
k
5
r
k
,=