3.1. Types

rocSOLVER uses types and enumerations defined by the rocBLAS API. For more information, see the rocBLAS types documentation. Next we present additional types, only used in rocSOLVER, that extend the rocBLAS API.

3.1.1. Additional types

rocblas_direct

enum rocblas_direct

Used to specify the order in which multiple Householder matrices are applied together.

Values:

enumerator rocblas_forward_direction

Householder matrices applied from the right.

enumerator rocblas_backward_direction

Householder matrices applied from the left.

rocblas_storev

enum rocblas_storev

Used to specify how householder vectors are stored in a matrix of vectors.

Values:

enumerator rocblas_column_wise

Householder vectors are stored in the columns of a matrix.

enumerator rocblas_row_wise

Householder vectors are stored in the rows of a matrix.

rocblas_svect

enum rocblas_svect

Used to specify how the singular vectors are to be computed and stored.

Values:

enumerator rocblas_svect_all

The entire associated orthogonal/unitary matrix is computed.

enumerator rocblas_svect_singular

Only the singular vectors are computed and stored in output array.

enumerator rocblas_svect_overwrite

Only the singular vectors are computed and overwrite the input matrix.

enumerator rocblas_svect_none

No singular vectors are computed.

rocblas_srange

enum rocblas_srange

Used to specify the type of range in which singular values will be found in partial singular value decompositions.

Values:

enumerator rocblas_srange_all

All singular values will be found.

enumerator rocblas_srange_value

All singular values in the half-open interval \((vl, vu]\) will be found.

enumerator rocblas_srange_index

The \(il\)-th through \(iu\)-th singular values will be found.

rocblas_evect

enum rocblas_evect

Used to specify how the eigenvectors are to be computed.

Values:

enumerator rocblas_evect_original

Compute eigenvectors for the original symmetric/Hermitian matrix.

enumerator rocblas_evect_tridiagonal

Compute eigenvectors for the symmetric tridiagonal matrix.

enumerator rocblas_evect_none

No eigenvectors are computed.

rocblas_workmode

enum rocblas_workmode

Used to enable the use of fast algorithms (with out-of-place computations) in some of the routines.

Values:

enumerator rocblas_outofplace

Out-of-place computations are allowed; this requires extra device memory for workspace.

enumerator rocblas_inplace

If not enough memory is available, this forces in-place computations.

rocblas_eform

enum rocblas_eform

Used to specify the form of the generalized eigenproblem.

Values:

enumerator rocblas_eform_ax

The problem is \(Ax = \lambda Bx\).

enumerator rocblas_eform_abx

The problem is \(ABx = \lambda x\).

enumerator rocblas_eform_bax

The problem is \(BAx = \lambda x\).

rocblas_erange

enum rocblas_erange

Used to specify the type of range in which eigenvalues will be found in partial eigenvalue decompositions.

Values:

enumerator rocblas_erange_all

All eigenvalues will be found.

enumerator rocblas_erange_value

All eigenvalues in the half-open interval \((vl, vu]\) will be found.

enumerator rocblas_erange_index

The \(il\)-th through \(iu\)-th eigenvalues will be found.

rocblas_eorder

enum rocblas_eorder

Used to specify whether the eigenvalues are grouped and ordered by blocks.

Values:

enumerator rocblas_eorder_blocks

The computed eigenvalues will be grouped by split-off blocks and arranged in increasing order within each block.

enumerator rocblas_eorder_entire

All computed eigenvalues of the entire matrix will be ordered from smallest to largest.

rocblas_esort

enum rocblas_esort

Used in the Jacobi methods to specify whether the eigenvalues are sorted in increasing order.

Values:

enumerator rocblas_esort_none

The computed eigenvalues will not be sorted.

enumerator rocblas_esort_ascending

The computed eigenvalues will be sorted in ascending order.

rocblas_layer_mode_flags

typedef uint32_t rocblas_layer_mode_flags

Used to specify the logging layer mode using a bitwise combination of rocblas_layer_mode values.