Skip to main content
`Ctrl`+`K`

# rocSOLVER types

rocSOLVER uses most types and enumerations defined in rocBLAS for the general operation and dense matrix computations along with some defined in rocSPARSE for sparse matrix computations, such as direct solvers. For more information, see the rocBLAS types and rocSPARSE types documentation.

This topic describes the rocSOLVER types that extend the rocBLAS and rocSPARSE APIs.

## rocblas_direct

enum rocblas_direct

  Used to specify the order in which multiple Householder matrices or plane rotations are applied together (see the documentation of the specific routines for more details).

  Values:

  enumerator rocblas_forward_direction

    Forward ordering.

  enumerator rocblas_backward_direction

    Backward ordering.

## rocblas_pivot

enum rocblas_pivot

  Used to specify the planes on which a sequence of Givens rotations is applied.

  Values:

  enumerator rocblas_pivot_variable

    The i-th rotation is applied on plane (i,i+1).

  enumerator rocblas_pivot_top

    The i-th rotation is applied on plane (1,i+1).

  enumerator rocblas_pivot_bottom

    The i-th rotation is applied on plane (i,m) or (i,n).

## 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.

## rocsolver_rfinfo

typedef struct rocsolver_rfinfo_ *rocsolver_rfinfo

  A handle to a structure containing matrix descriptors and metadata required to interact with rocSPARSE when using the rocSOLVER re-factorization functionality. It needs to be initialized with rocsolver_create_rfinfo and destroyed with rocsolver_destroy_rfinfo.

## rocsolver_rfinfo_mode

enum rocsolver_rfinfo_mode

  Used to specify the mode of the rfinfo struct required by the re-factorization functionality.

  Values:

  enumerator rocsolver_rfinfo_mode_lu

    To work with LU factorization (for general sparse matrices). This is the default mode.

  enumerator rocsolver_rfinfo_mode_cholesky

    To work with Cholesky factorization (for symmetric positive definite sparse matrices).

## rocsolver_alg_mode

enum rocsolver_alg_mode

  Used by specific functions to specify the algorithm mode.

  Values:

  enumerator rocsolver_alg_mode_gpu

    Computations are all performed on the GPU. This is the default mode.

  enumerator rocsolver_alg_mode_hybrid

    Computations are performed on the CPU and GPU.

  enumerator rocsolver_alg_mode_mixed

    Nested functions use a mixture of hybrid and GPU-only modes.

## rocsolver_function

enum rocsolver_function

  Used to specify a function with multiple supported algorithm modes.

  Values:

  enumerator rocsolver_function_bdsqr
  enumerator rocsolver_function_gesvd

    Affected by bdsqr.

  enumerator rocsolver_function_sterf
  enumerator rocsolver_function_steqr
  enumerator rocsolver_function_syev_heev

    Affected by sterf and steqr.