LIBCONV(3F) LIBCONV(3F)
conv, libconv, convolution, correlation - Convolution and Correlation
Library
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.
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.
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
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.
------------------------------------------------------------------
| | | |
| | 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
conv(3C) conv(3C)
conv: toupper, tolower, _toupper, _tolower, toascii - translate
characters
#include <ctype.h>
int toupper (int c);
int tolower (int c);
int _toupper (int c);
int _tolower (int c);
int toascii (int c);
toupper and tolower have as their domain the range of the function getc:
all values represented in an unsigned char and the value of the macro EOF
as defined in stdio.h. If the argument of toupper represents a lowercase
letter, the result is the corresponding uppercase letter. If the
argument of tolower represents an uppercase letter, the result is the
corresponding lowercase letter. All other arguments in the domain are
returned unchanged.
The macros _toupper and _tolower accomplish the same things as toupper
and tolower, respectively, but have restricted domains and are faster.
_toupper requires a lowercase letter as its argument; its result is the
corresponding uppercase letter. _tolower requires an uppercase letter as
its argument; its result is the corresponding lowercase letter.
Arguments outside the domain cause undefined results.
toascii yields its argument with all bits turned off that are not part of
a standard 7-bit ASCII character; it is intended for compatibility with
other systems.
toupper, tolower, _toupper, and_tolower are affected by LC_CTYPE. In the
C locale, or in a locale where shift information is not defined, these
functions determine the case of characters according to the rules of the
ASCII-coded character set. Characters outside the ASCII range of
characters are returned unchanged.
All the conversion functions and macros use a table lookup.
ctype(3C), setlocale(3C), getc(3S), environ(5).
PPPPaaaaggggeeee 1111 [ Back ]
|