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

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

Contents


_IIRM1D(3F)							   _IIRM1D(3F)


NAME    [Toc]    [Back]

     SIIRM1D, DIIRM1D, CIIRM1D,	ZIIRM1D	- N 1D convolutions in the time
     domain.

FORTRAN	SPECIFICATION
     subroutine	SIIRM1D( f, incf, ldf, ifx0, n_fx, ny,
			 g, incg,      igx0, n_gx,
			 h, inch, ldh, ihx0, n_hx )

     integer		 incf, ldf, ifx0, n_fx,	ny,
			 incg, igx0, n_gx,
			 inch, ldh, ihx0, n_hx

     real		 f(ldf,ny), g(*), h(ldh,ny)


     subroutine	DIIRM1D( f, incf, ldf, ifx0, n_fx, ny,
			 g, incg,      igx0, n_gx,
			 h, inch, ldh, ihx0, n_hx )

     integer		 incf, ldf, ifx0, n_fx,	ny,
			 incg, igx0, n_gx,
			 inch, ldh, ihx0, n_hx

     double precision	 f(ldf,ny), g(*), h(ldh,ny)


     subroutine	CIIRM1D( f, incf, ldf, ifx0, n_fx, ny,
			 g, incg,      igx0, n_gx,
			 h, inch, ldh, ihx0, n_hx )

     integer		 incf, ldf, ifx0, n_fx,	ny,
			 incg, igx0, n_gx,
			 inch, ldh, ihx0, n_hx

     complex		 f(ldf,ny), g(*), h(ldh,ny)


     subroutine	ZIIRM1D( f, incf, ldf, ifx0, n_fx, ny,
			 g, incg,      igx0, n_gx,
			 h, inch, ldh, ihx0, n_hx )

     integer		 incf, ldf, ifx0, n_fx,	ny,
			 incg, igx0, n_gx,
			 inch, ldh, ihx0, n_hx

     double complex	 f(ldf,ny), g(*), h(ldh,ny)








									Page 1






_IIRM1D(3F)							   _IIRM1D(3F)


C SPECIFICATION    [Toc]    [Back]

     #include <conv.h>

     void siirm1d( float *f, int incf, int lsf,	int ifx0, int n_fx,
		   int n_seq,
		   float *g, int incg, int igx0, int n_gx,
		   float *h, int inch, int ldh,	int ihx0, int n_hx )

     void diirm1d( double *f, int incf,	int ldf, int ifx0, int n_fx,
		   int n_seq,
		   double *g, int incg,	int igx0, int n_gx,
		   double *h, int inch,	int ldh, int ihx0, int n_hx )

     void ciirm1d( complex *f, int incf, int ldf, int ifx0, int	n_fx,
		   int n_seq,
		   complex *g, int incg, int igx0, int n_gx,
		   complex *h, int inch, int ldh, int ihx0, int	n_hx )

     void ziirm1d( zomplex *f, int incf, int ldf, int ifx0, int	n_fx,
		   int n_seq,
		   zomplex *g, int incg, int igx0, int n_gx,
		   zomplex *h, int inch, int ldh, int ihx0, int	n_hx )


DESCRIPTION    [Toc]    [Back]

     SIIRM1D, DIIRM1D, CIIRM1D and DIIRM1D compute N 1D	convolutions in	the
     time domain :

      h(i,j) = beta * h(i,j) + alpha * Sum[ f(k,j) * g(i-k) ] with j=1,...,N

     _IIRM1D can be used instead of _IIR2D when	the 2D filter can be
     decomposed	into the convolution of	two 1D filters.

     For example:
	 ------------------   ------------------       ------------------
	 | 0.25	-.50 0.25 |   |	0.   -.50 0.   |       | 0.   0.   0.	|
	 | -.50	1.00 -.50 | = |	0.   1.00 0.   |  (*)  | -.50 1.00 -.50	|
	 | 0.25	-.50 0.25 |   |	0.   -.50 0.   |       | 0.   0.   0.	|
	 |________________|   |________________|       |________________|

     In	these special cases, filtering an Image	(NxN) by a Filter (MxM)	can
     requires:
	  only		 2 * M * N * N	flop (using "diirm1d" twice)
	  as much as	 M * M * N * N	flop (using "diir2d")










									Page 2






_IIRM1D(3F)							   _IIRM1D(3F)



USAGE:
     1.	Suppose	you want to:
	    filter a 2D	"image"	f(0:449,0:699) along the first dimension ,
	by  a 1D filter	g(-15:15),
	    put	the result in h(0:299,0:699),
	you can	use:

	   call	diirm1d(   f(0,0), 449-0+1, 1, 0, 449-0+1, 699+1,
			   g(-15), 1, -15, 15-(-15)+1,
	  $		   h(0,	0), 229-0+1, 0,	299-0+1	)

     2.	Suppose	you want to:
	    filter a 2D	"image"	f(0:449,0:699) along the Second	dimension ,
	by  the	Fisrt line of g(0:149,-15:15),
	    put	the result in h(-25:449,0:699),
	you can	use:

	   call	diirm1d(   f(0,	0), 699-0+1, 1,	0, 449-0+1,
	  $		   g(0,	-15), 1, 149-25+1, -15,	15,
	  $		   h(0,	0), 449-0+1, 1,	0, 449-0+1 )

PARAMETERS    [Toc]    [Back]

     f	     Vector containing the 2D sequence "f"

     incf    Increment between two successive values of	"f"

     ldf     Increment between two successive 1D sequnce of "f"

     ifx0    Index of the first	element	of each	1D sequence of "f"

     n_fx    Number of elements	of each	sequence of "f"

     ny	     Number of 1D sequences to filter


     g	     Vector containing the 1D sequence "g"

     incg    Increment between two successive values of	"g"

     igx0    Index of the first	element	of each	1D sequence of "g"

     n_gx    Number of elements	of Each	sequence of "g"


     h	     Vector containing the 2D sequence "h"

     inch    Increment between two successive values of	"h"

     ldh     Increment between two successive 1D sequnce of "h"





									Page 3






_IIRM1D(3F)							   _IIRM1D(3F)



     ihx0    Index of the first	element	of each	1D sequence of "h"

     n_hx    Number of elements	of Each	sequence of "h"



IMPORTANT NOTE:
	   The array pointers must all point to	the first element of the
	   array "(ifx0,ify0)",	"(igx0,igy0)" and "(ihx0,ihy0)". If "f"
	   for example is defined as
		dimension f(-25:45,10:21)
	   Then	"diirm1d" must be called with the following parameters
		call diirm1d( f(-25,10),(45-(-25)+1),-25,45,10,21 ... )

AUTHORS    [Toc]    [Back]

	  Jean-Pierre Panziera,	1/12/93.


									PPPPaaaaggggeeee 4444
[ Back ]
 Similar pages
Name OS Title
corm1d IRIX N 1D convolutions in the time domain. FORTRAN SPECIFICATION subroutine SCORM1D( f, incf, ldf, ifx0, n_fx, ny,
firm1d IRIX N 1D convolutions in the time domain. FORTRAN SPECIFICATION subroutine SFIRM1D( f, incf, ldf, ifx0, n_fx, ny,
iir2d IRIX 2D Convolution in the time domain. FORTRAN SPECIFICATION subroutine SIIR2D( f, incf, ldf, ifx0, n_fx, ify0, n_
fir2d IRIX 2D Convolution in the time domain. FORTRAN SPECIFICATION subroutine SFIR2D( f, incf, ldf, ifx0, n_fx, ify0, n_
cor2d IRIX 2D Correlation in the space domain. FORTRAN SPECIFICATION subroutine SCOR2D( f, incf, ldf, ifx0, n_fx, ify0, n
cor1d IRIX 1D Correlation in the time domain. FORTRAN SPECIFICATION subroutine SCOR1D( f, incf, if0, nf, g, incg, ig0, ng
fir1d IRIX 1D Convolution in the time domain. FORTRAN SPECIFICATION subroutine SFIR1D( in_put, incinp, i0_inp, n_inp, fir
iir1d IRIX 1D recursive convolution in the time domain. FORTRAN SPECIFICATION subroutine SIIR1D( in_put, incinp, i0_inp,
sdfft3dui IRIX 3D FFT Real to Complex workspace initialization routines. FORTRAN SPECIFICATION subroutine SFFT3DUI( n1, n2, n
sdfft2dui IRIX 2D FFT Real to Complex workspace initialization routines. FORTRAN SPECIFICATION subroutine SFFT2DUI( n1, n2, w
Copyright © 2004-2005 DeniX Solutions SRL
newsletter delivery service