HP MLIB User's Guide Vol. 2 7th Ed.
Chapter 5 Fast Fourier Transforms 577
Real-to-complex three-dimensional FFT CRC3FT/ZRC3FT
Alternatively, if Z(m
1
,m
2
,m
3
), for m
1
= 1, 2, ..., l
1
, m
2
= 1, 2, ..., l
2
, and
m
3
= 1, 2, ..., l
3
, is a conjugate-symmetric complex data set, the
three-dimensional, real, scaled, inverse discrete Fourier transform of
Z(m
1
,m
2
,m
3
) is defined by
for n
1
= 1, 2, ..., l
1
, n
2
= 1, 2, ..., l
2
, and n
3
= 1, 2, ..., l
3
.
For best performance, these subprograms require that l
1
, l
2
, and l
3
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, 3, and where either l
1
= 1 or l
1
is even.
Usage VECLIB:
INTEGER*4 l1, l2, l3, ldz, mdz, iopt, ier
COMPLEX*8 z(ldz, mdz, l3)
CALL CRC3FT(z, l1, l2, l3, ldz, mdz, iopt, ier)
INTEGER*4 l1, l2, l3, ldz, mdz, iopt, ier
COMPLEX*16 z(ldz, mdz, l3)
CALL ZRC3FT(z, l1, l2, l3, ldz, mdz, iopt, ier)
VECLIB8:
INTEGER*8 l1, l2, l3, ldz, mdz, iopt, ier
COMPLEX*8 z(ldz, mdz, l3)
CALL CRC3FT(z, l1, l2, l3, ldz, mdz, iopt, ier)
INTEGER*8 l1, l2, l3, ldz, mdz, iopt, ier
COMPLEX*16 z(ldz, mdz, l3)
CALL ZRC3FT(z, l1, l2, l3, ldz, mdz, iopt, ier)
Input z Array of data to be transformed. For a forward
real-to-complex transform, only the real parts of z are
used as input. For an inverse complex-to-real
transform, only the first l1/2+1 rows of z are used as
input.
zn
1
n
2
n
3
,,()
1
l
1
l
2
l
3
--------------
Zm
1
m
2
m
3
,,()
e
+2πim
1
1–()n
1
1–()l
1
⁄
e
+2πim
2
1–()n
2
1–()l
2
⁄
e
+2πim
3
1–()n
3
1–()
⁄
×
m
3
1=
l
3
∑
m
2
1=
l
2
∑
m
1
1=
l
1
∑
=
l
k
2
p
k
3
q
k
5
r
k
,=