LIBCONV(3F)LIBCONV(3F)NAME
conv, libconv, convolution, correlation - Convolution and Correlation
Library
DESCRIPTION
LIBCONV is an optimized library available on Silicon Graphics computers.
It features Convolution for Finite Impulse Response (FIR) and Infinite
Impulse Response (IIR) filters, together with Correlations. The library
modules take 1D and 2D inputs, and are available in single and double
precision for real and complex arithmetic. The 2D subprograms have been
parallelized and take fully advantage of SGI parallel architecture.
The two main goals of the Convolution and Correlation library are
performance and generality. It provides well tuned modules usable in most
convolution and correlation instances.
To achieve maximum flexibility, 1D sequence are defined by 3 parameters,
while 6 parameters are necessary for 2D inputs. One drawback of this
versatility may come from the (very) long calling sequences (up to 23
parameters for sfir2d). To help the user, systematic conventions were
used for modules names, calling parameters and sequence definition.
C interface
For the C interface two types "complex" and "zomplex" have been defined
as structures of two floating point variables ( re, im ). They are
equivalent to the "complex" and "double complex" Fortran types.
typedef struct {
float re;
float im; } complex;
typedef struct {
double re;
double im; } zomplex;
These types as well as the prototypes of the different functions for
convolution and correlations are defined in the "/usr/include/conv.h"
header file.
NAMING CONVENTIONS
The name of each Convolution and Correlation routine is a coded
specification of its function (6 or 7-character names).
All driver and computational routines have names of the form XYYYMND
The first letter, X, indicates the data type as follows:
S REAL
Page 1
LIBCONV(3F)LIBCONV(3F)
D DOUBLE PRECISION
C COMPLEX
Z COMPLEX*16 or DOUBLE COMPLEX
The next three letters, YYY, indicate the type of computation performed.
For example, fir for FIR convolution, iir for IIR filtering, and cor for
Correlation.
The next two letters, MN, are the dimension. MN can be a 1 or 2
character string: 1 or 2 for 1D and 2D modules, and M1 for "multiple 1D"
subprograms.
SUMMARY------------------------------------------------------------------
| | | |
| | 1 Dimension | 2 Dimensions |
------------------------------------------------------------------
| | FIR | IIR | Corre- | FIR | IIR | Corre- |
| | filter | filter | lation | filter | filter | lation |
------------------------------------------------------------------
| | | | | | | |
| Real | sfir1d | siir1d | scor1d | sfir2d | siir2d | scor2d |
| Single | | | | sfirm1d | siirm1d| scorm1d|
| | | | | | | |
| Real | dfir1d | diir1d | dcor1d | dfir2d | diir2d | dcor2d |
| Double | | | | dfirm1d | diirm1d| dcorm1d|
| | | | | | | |
| Complex | cfir1d | ciir1d | ccor1d | cfir2d | ciir2d | ccor2d |
| Double | | | | cfirm1d | ciirm1d| ccorm1d|
| | | | | | | |
| Complex | zfir1d | ziir1d | zcor1d | zfir2d | ziir2d | zcor2d |
| Double | | zcfirm1d| ziirm1d| zcorm1d|
------------------------------------------------------------------
For example:
sfir1d applies a FIR filter to single precision real 1D signals,
diir1d performs a IIR filtering on double precision 1D data,
cfirm1d applies a 1D FIR filter for each column of a 2D single
complex array, and
zcor2d computes the correlation of 2D double complex sequences.
Page 2