cscal2d man page on IRIX

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



cscal2d,zscal2d(3F)					   cscal2d,zscal2d(3F)

NAME
     cscal2d, zscal2d - scales a 2D complex sequence.

SYNOPSYS
     Fortran :
     subroutine cscal2d( n1, n2, alpha, array, lda)
	  integer     n1, n2, lda
	  real	      alpha
	  complex     array(lda,n2)
     subroutine zscal2d( n1, n2, alpha, array, lda)
	  integer     n1, n2, lda
	  real*8      alpha
	  double complex array(lda,n2)

     C :
     #include <fft.h>
     int cscal2d(int n1,int n2,float alpha,
	       complex *array,int lda);
     int zscal2d(int n1,int n2,double alpha,
	       zomplex *array,int lda);

DESCRIPTION
     cscal2d and zscal2d scale a 2D complex sequence of size N1xN2.
     The Fourier Transforms are not normalized so the succession Direct-
     Inverse transform scales the input data by a factor equal to the size of
     the transform.  So cscal2d or zscal2d may be used to scale back the
     result.

PARAMETERS
     N1 - Integer, the first dimension size of the 2D sequence.
     Unchanged on exit.

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

     Alpha - scaling floating point value.

     ARRAY - Array containing the samples of the 2D sequence to be
     transformed.
     On input, the element {i,j} of the sequence is stored as A(i,j) in
     Fortran , and A[i+j*lda] in C.
     On exit, the array is overwritten by its transform.  LDA - Integer,
     leading dimension: increment between the samples of two consecutive sub-
     sequences (e.g between {i,j+1} and {i,j}).
     Unchanged on exit.

Example of Calling Sequence
     Given a 2D complex sequence of size 64x1024.  We successively apply a
     Direct Fourier Transform, an Inverse Fourier Transform and finally scale
     back the result by a factor 1/N (1/(64*1024.))-

									Page 1

cscal2d,zscal2d(3F)					   cscal2d,zscal2d(3F)

     This succession DirectFFT-InverseFFT-Scaling is equivalent to the
     identity operator and the final sequence should be equal (with round-off
     precision) to the initial sequence.
     The offset between the first element of two succesive sub-sequence
     (leading dimension) is 2049.
     Fortran
	  complex array(0:2049-1,0:64-1), coeff(1024+64+2*15)
	  call cfft2di( 1024, coeff)
	  call cfft2d( -1, 1024, 64, array, 2049, coeff)
	  call cfft2d(	1, 1024, 64, array, 2049, coeff)
	  call cscal2d(1024,64,(1./real(1024*64)),array,2049)

     C
	  #include <fft.h>
	  complex array[64*2049], *coeff;
	  coeff = cfft2di( 1024, NULL);
	  cfft2d( -1, 1024, 64, array, 2049, coeff);
	  cfft2d(  1, 1024, 64, array, 2049, coeff);
	  cscal2d( 1024,64,1./(float)(1024*64),array,2049);

     NOTE_1 : The Direct and Inverse transforms should use opposite signs -
     Which one is used (+1 or -1) for Direct transform is just a matter of
     convention-

     NOTE_2 : The Fourier Transforms are not normalized so the succession
     Direct-Inverse transform scales the input data by a factor equal to the
     size of the transform.

SEE ALSO
     fft, cfft2di, zfft2di, cfft2d, zfft2d, cprod2d, zprod2d

									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