DIIRM1D man page on IRIX

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



_IIRM1D(3F)							   _IIRM1D(3F)

NAME
     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
     #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
     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
     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
	  Jean-Pierre Panziera, 1/12/93.

									Page 4

[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