dprod3du man page on IRIX

Man page or keyword search:  
man Server   31559 pages
apropos Keyword Search (all sections)
Output format
IRIX logo
[printable version]



sprod3du,dprod3du(3F)					 sprod3du,dprod3du(3F)

NAME
     sprod3du, dprod3du - Compute the product of a 3D Fourier transforms with
     a 3D filter.

SYNOPSYS
     Fortran :
     subroutine sprod3du( n1,n2,n3,array,la1,la2,filter,lf1,lf2)
	  integer n1,n2,n3,la1,la2,lf1,lf2
	  real	    array(la1,la2,n3), filter(lf1,lf2,n3)

     subroutine dprod3du( n1,n2,n3,array,la1,la2,filter,lf1,lf2)
	  integer n1,n2,n3,la1,la2,lf1,lf2
	  real*8    array(la1,la2,n3), filter(lf1,lf2,n3)

     C :
     #include <fft.h>
     int sprod3du(int n1,int n2,int n3,float *array,int la1, int la2,
	       float *filter, int lf1, int lf2);
     int dprod3du(int n1,int n2,int n3,double *array,int la1, int la2,
		    double *filter, int lf1, int lf2);

DESCRIPTION
     sprod3du and dprod3du compute the product of the Fourier transforms of 3D
     real sequence (size N1xN2xN3) with the Fourier transform of 3D real
     filter. Note, the product of the Fourier transforms of two sequences is
     equal to the Fourier transform of their convolution.

PARAMETERS
     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 thrid 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.

									Page 1

sprod3du,dprod3du(3F)					 sprod3du,dprod3du(3F)

     FILTER Array containing the Fourier Transform of the 3D filter.
     Unchanged on exit.

     LF1 Integer, filter array first leading dimension.	 Unchanged on exit.

     LF2 Integer, filter array second leading dimension.  Unchanged on exit.

Example of Calling Sequence
     Given a real sequence of size 100x64x125.	We apply successvely the
     Direct FFT, the Inverse FFT, and scale back.  The elements of each
     sequence are stored with increment (stride) 1, the offset between the
     first element of two succesive 1D sub-sequences (first leading dimension)
     is 102, and the number of 1D sub-sequence between two succesive 2D sub-
     sequences (second leading dimension) is 64.
     Note : 102 >= 100+2 , and 64 >= 64.
     Fortran
	  real array(0:102-1,0:64-1,0:125-1)
	  real filter(0:102-1,0:64-1,0:125-1)
	  real coeff(102+15 + 2*(64+15) + 2*(125+15))
	  call scfft3dui( 100, 64, 125, coeff)
	  call scfft3du( -1, 100, 64, 125, array, 102, 64, coeff)
	  call sprod3du( 100,64,125,array,102,64,filter,102,64)
	  call csfft3du(  1, 100, 64, 125, array, 102, 64, coeff)

     C
	  #include <fft.h>
	  float array[64*102*125], filter[64*102*125], *coeff;
	  coeff = scfft3dui( 100, 64, 125, NULL);
	  scfft3du( -1, 100, 64, 125, array, 102, 64, coeff);
	  sprod3du( 100,64,125,array,102,64,filter,102,64);
	  csfft3du(  1, 100, 64, 125, array, 102, 64, coeff);

     NOTE : As the FFTs are not normalized, a successive direct, then inverse
     transform, scales the original input by the size of the sequence. Rather
     than calling sscal3d or dscal3d to scale back the result, this scaling
     factor could be directly applied to the filter transform, thus saving
     some extra work.

SEE ALSO
     fft, scfft3dui, dzfft3dui, scfft3du, dzfft3du, sscal3d, dscal3d

									Page 2

[top]

List of man pages available for IRIX

Copyright (c) for man pages and the logo by the respective OS vendor.

For those who want to learn more, the polarhome community provides shell access and support.

[legal] [privacy] [GNU] [policy] [cookies] [netiquette] [sponsors] [FAQ]
Tweet
Polarhome, production since 1999.
Member of Polarhome portal.
Based on Fawad Halim's script.
....................................................................
Vote for polarhome
Free Shell Accounts :: the biggest list on the net