2.7. Parameter Enumerations for Signal Processing

VSIPL++ defines several enumerations to aid in the construction and use of signal processing functions and objects.

2.7.1. alg_hint_type

Use to indicate a preference on type of algorithm, if library has multiple algorithms. If library does not have multiple algorithms, preference will be ignored.

alg_time

Prefer fastest algorithm.

alg_space

Prefer most memory efficient algorithm.

alg_noise

Prefer most accurate algorithm.

2.7.2. bias_type

Some filters, for example Correlation, can scale the output. Control this behavior with bias_type .

biased

Do not scale.

unbiased

Divide each output value by the number of input values.

2.7.3. mat_op_type

Linear equation solvers and generalized matrix products use mat_op_type to indicate the matrix operation type.

mat_ntrans

Indicates the matrix should not be transposed.

mat_trans

Indicates the matrix should be transposed.

mat_herm

Indicates the Hermitian transpose or conjugate transpose of the matrix should be taken.

mat_conj

Indicates the conjugate of the matrix should be taken.

2.7.4. obj_state

Some filters, for example Fir, can maintain state between invocations. Use obj_state to control this behavior.

state_no_save

Do not save state between successive invocation of filter.

state_save

Save state between successive invocations of filter so that output is continuous.

2.7.5. product_side_type

Linear equation solvers, specifically chold, qrd and svd, use product_side_type to indicate whether to use left or right multiplication in matrix products.

mat_lside

Indicates prod(A, B) yields the product A B.

mat_rside

Indicates prod(A, B) yields the product B A.

2.7.6. mat_uplo

The Cholesky linear equation solver chold uses mat_uplo to indicate which half of a symmetric or Hermitian matrix is referenced.

lower

Indicates the lower LU decomposition is performed.

upper

Indicates the upper LU decomposition is performed.

2.7.7. return_mechanism_type

Fast Fourier Transforms and Linear equation solvers, specifically chold, lud, qrd and svd, use return_mechanism_type to indicate the return mechanism format for matrices containing results. The former is generally easier to code, though the latter is generally faster and preferred for larger data sets.

by_value

Indicates a function returns a computed value.

by_reference

Indicates a function requires a parameter where the computed value is saved

2.7.8. storage_type

Linear equation solvers, specifically qrd and svd, use storage_type to indicate the storage format for decomposed matrices.

qrd_nosaveq

The qrd object does not store Q.

qrd_saveq1

The qrd object stores Q using the same amount of space as the matrix given for decomposition.

qrd_saveq

The qrd object stores Q using the same number of rows as the matrix given for decomposition.

svd_uvfull

The svd object stores all of the decomposed matrix.

svd_uvnos

The svd object does not store the decomposed matrix.

svd_uvpart

Given an N by M matrix, where p = min(M, N), the svd object stores either the first p columns of U (in the case of type ustorage) or the first p rows of VT or VH (in the case of type vstorage).

2.7.9. support_region_type

support_region_type describes how to handle edge conditions for convolution and correlation filter objects.

support_full

Compute output wherever kernel has overlap with input support, treating values outside input as zero.

support_same

Compute output with same size as input, treating values outside input as zero.

support_min

Compute output only where kernel is entirely within the input support.

support_min_zeropad

Compute output only where kernel is entirely within the input support, with zero padding of output so sizes matches input.

2.7.10. symmetry_type

The convolution algorithm uses a kernel whose size is determined from the size of a view of coefficients and from an indication of its symmetry given by a member of symmetry_type .

nonsym

The kernel has the same size as the coefficient view.

sym_even_len_odd

The kernel size is one less than twice the size of the coefficient view.

sym_even_len_even

The kernel size is twice the size of the coefficient view.