*nix Documentation Project
·  Home
 +   man pages
·  Linux HOWTOs
·  FreeBSD Tips
·  *niX Forums

  man pages->IRIX man pages -> complib/fft3d (3)              
Title
Content
Arch
Section
 

Contents


cfft3d,zfft3d(3F)					     cfft3d,zfft3d(3F)


NAME    [Toc]    [Back]

     cfft3d, zfft3d - 3D Complex-to-Complex Fast Fourier Transform.

SYNOPSYS    [Toc]    [Back]

     Fortran :
     subroutine	cfft3d(	sign, n1, n2, n3, array, la1, la2, coef	)
	  integer  sign, n1, n2, n3, la1, la2
	  complex  array(la1,la2,n3)
	  complex coef((n1+15)+(n2+15)+(n3+15))

     subroutine	zfft3d(	sign, n1, n2, n3, array, la1, la2, coef	)
	  integer  sign, n1, n2, n3, la1, la2
	  double complex array(la1,la2,n3)
	  double complex coef((n1+15)+(n2+15)+(n3+15))


     C :
     #include <fft.h>
     int cfft3d(int sign,int n1,int n2,int n3,complex *array,
		    int	la1, int la2, complex *coef);
     int zfft3d(int sign,int n1,int n2,int n3,zomplex *array,
		    int	la1, int la2, zomplex *coef);

DESCRIPTION    [Toc]    [Back]

     cfft3d and	zfft3d compute in place	the complex Fourier transform of
     complex 3D	sequence of size N1xN2xN3.  The	value F{j1,j2,j3} of the
     transform of the 3D sequence f{i1,i2,i3} is equal to:
       F{j1,j2,j3} = Sum(W1^(i1*j1)*W2^(i2*j2)*W3^(i3*j3*f{i1,i2,i3} ),
		     for i[123]	=0,...,(N[123]-1)
		 W[123]	= exp( (Sign*2*sqrt(-1)*PI) / N[123] )

Storage    [Toc]    [Back]

     It	is assumed that	the (N1	x N2 x N3) 3D sequence is stored along
     dimension N1.  So the index {i+1,j,l} has an offset of 1 element with
     respect to	{i,j,l}, and {i,j+1,k} an offset of la1	elements with respect
     to	{i,j,k}, and {i,j,k+1} an offset of (la1 * la2)	elements with respect
     to	{i,j,k}.

Algorithm    [Toc]    [Back]

     The complex-to-complex 3D Fourier transform is computed with a row-column
     approach.
      -	First, N3 2D FFTs complex-to-complex of	size N1xN2 are evaluated,
      -	then, N1*N2 FFTs complex-to-complex of size N3 are performed,
     stride=la1*la2, and leading_dimension=1.








									Page 1






cfft3d,zfft3d(3F)					     cfft3d,zfft3d(3F)



PARAMETERS
     SIGN - Integer specifying which sign to be	used for the expression	of W
     (see above) - must	be either +1 or	-1.
     Unchanged on exit.

     N1	Integer, the first dimension size of the 3D sequence.  Unchanged on
     exit.

     N2	Integer, the second dimension size of the 3D sequence.	Unchanged on
     exit.

     N3	Integer, the third dimension size of the 3D sequence.  Unchanged on
     exit.

     ARRAY Array containing the	samples	of the 3D sequence to be transformed.
     On	input, the element {i,j,k} of the sequence is stored as	A(i,j,k) in
     Fortran , and A[i+j*la1+k*la1*la2]	in C. On exit, the array is
     overwritten.

     LA1 Integer, first	leading	dimension: increment between the samples of
     two consecutive 1D	sub-sequences (e.g between {i,j+1,k} and {i,j,k} ).
     Unchanged on exit.

     LA2 Integer, second leading dimension: number of the 1D sub-sequence
     between two consecutive 2D	sub-sequences (e.g between {i,j,k+1} and
     {i,j,k}).	Unchanged on exit.

     COEFF - Array of at least ( (N+15)+(N2+15)+(N3+15)	) elements.  On	entry
     it	contains the Sines/Cosines and factorization of	N. COEFF needs to be
     initialized with a	call to	cfft3di	or zfft3di. Unchanged on exit.


Example	of Calling Sequence
     3D	FFT computed on	a complex sequence of size 100x64x125.
     Fortran
	  complex array(0:100-1,0:64-1,0:125-1)
	  complex coeff(100+15 + 64+15 + 125+15)
	  call cfft3di(	100, 64, 125, coeff)
	  call cfft3d( -1, 100,	64, 125, array,	100, 64, coeff)

     C
	  #include <fft.h>
	  complex array[100*64*125], *coeff;
	  coeff	= cfft3di( 100,	64, 125, NULL);
	  cfft3d( -1, 100, 64, 125, array, 100,	64, coeff);

SEE ALSO    [Toc]    [Back]

      
      
     fft, cfft3di, zfft3di


									PPPPaaaaggggeeee 2222
[ Back ]
 Similar pages
Name OS Title
fft2d IRIX 2D Complex-to-Complex Fast Fourier Transform.
sdfft1du IRIX 1D Real to Complex Fast Fourier Transform. FORTRAN SPECIFICATION subroutine DFFT1DU( job, n, sequence, inc, wo
sdfftm1du IRIX Multiple 1D, Real to Complex Fast Fourier Transform. FORTRAN SPECIFICATION subroutine DFFTM1DU( job, n, p, seq
sdfft3du IRIX 3D Real to Complex Fast Fourier Transform. FORTRAN SPECIFICATION subroutine DFFT3DU( job, n1, n2, n3, sequence
sdfft2du IRIX 2D Real to Complex Fast Fourier Transform. FORTRAN SPECIFICATION subroutine DFFT2DU( job, n1, n2, sequence, ld
fft1d IRIX 1D, Real Complex-to-Complex, Fast Fourier Transforms.
cfftm1d IRIX Multiple 1D, complex-to-complex, Fast Fourier Transforms.
fft3du IRIX 3D, Real to Complex, Direct Fast Fourier Transforms.
csfft1du IRIX 1D, Complex to Real, Inverse Fast Fourier Transforms.
fft1du IRIX 1D, Real to Complex, Direct Fast Fourier Transforms.
Copyright © 2004-2005 DeniX Solutions SRL
newsletter delivery service