# 1.1. Introduction

## 1.1.1. Library overview

rocSOLVER is an implementation of LAPACK routines on top of AMD’s open source ROCm platform. rocSOLVER is implemented in the HIP programming language and optimized for AMD’s latest discrete GPUs.

## 1.1.2. Currently implemented functionality

The rocSOLVER library is in the early stages of active development. New features are being continuously added, with new functionality documented at each release of the ROCm platform.

The following tables summarize the LAPACK functionality implemented for the different supported precisions in rocSOLVER’s latest release. All LAPACK and LAPACK-like main functions include _batched and _strided_batched versions. For a complete description of the listed routines, please see the rocSOLVER API document.

### LAPACK auxiliary functions

Vector and matrix manipulations
Function | single | double | single complex | double complex
--- | --- | --- | --- | ---
rocsolver_lacgv | x | x | x | x
rocsolver_laswp | x | x | x | x
rocsolver_lauum | x | x |  |

Householder reflections
Function | single | double | single complex | double complex
--- | --- | --- | --- | ---
rocsolver_larfg | x | x | x | x
rocsolver_larf | x | x | x | x
rocsolver_larft | x | x | x | x
rocsolver_larfb | x | x | x | x

Bidiagonal forms
Function | single | double | single complex | double complex
--- | --- | --- | --- | ---
rocsolver_labrd | x | x | x | x
rocsolver_bdsqr | x | x | x | x
rocsolver_bdsvdx | x | x |  |

Tridiagonal forms
Function | single | double | single complex | double complex
--- | --- | --- | --- | ---
rocsolver_sterf | x | x |  |
rocsolver_stebz | x | x |  |
rocsolver_latrd | x | x | x | x
rocsolver_steqr | x | x | x | x
rocsolver_stedc | x | x | x | x
rocsolver_stein | x | x | x | x

Symmetric matrices
Function | single | double | single complex | double complex
--- | --- | --- | --- | ---
rocsolver_lasyf | x | x | x | x

Orthonormal matrices
Function | single | double | single complex | double complex
--- | --- | --- | --- | ---
rocsolver_org2r | x | x |  |
rocsolver_orgqr | x | x |  |
rocsolver_orgl2 | x | x |  |
rocsolver_orglq | x | x |  |
rocsolver_org2l | x | x |  |
rocsolver_orgql | x | x |  |
rocsolver_orgbr | x | x |  |
rocsolver_orgtr | x | x |  |
rocsolver_orm2r | x | x |  |
rocsolver_ormqr | x | x |  |
rocsolver_orml2 | x | x |  |
rocsolver_ormlq | x | x |  |
rocsolver_orm2l | x | x |  |
rocsolver_ormql | x | x |  |
rocsolver_ormbr | x | x |  |
rocsolver_ormtr | x | x |  |

Unitary matrices
Function | single | double | single complex | double complex
--- | --- | --- | --- | ---
rocsolver_ung2r |  |  | x | x
rocsolver_ungqr |  |  | x | x
rocsolver_ungl2 |  |  | x | x
rocsolver_unglq |  |  | x | x
rocsolver_ung2l |  |  | x | x
rocsolver_ungql |  |  | x | x
rocsolver_ungbr |  |  | x | x
rocsolver_ungtr |  |  | x | x
rocsolver_unm2r |  |  | x | x
rocsolver_unmqr |  |  | x | x
rocsolver_unml2 |  |  | x | x
rocsolver_unmlq |  |  | x | x
rocsolver_unm2l |  |  | x | x
rocsolver_unmql |  |  | x | x
rocsolver_unmbr |  |  | x | x
rocsolver_unmtr |  |  | x | x

### LAPACK main functions

Triangular factorizations
Function | single | double | single complex | double complex
--- | --- | --- | --- | ---
rocsolver_potf2 | x | x | x | x
rocsolver_potrf | x | x | x | x
rocsolver_getf2 | x | x | x | x
rocsolver_getrf | x | x | x | x
rocsolver_sytf2 | x | x | x | x
rocsolver_sytrf | x | x | x | x

Orthogonal factorizations
Function | single | double | single complex | double complex
--- | --- | --- | --- | ---
rocsolver_geqr2 | x | x | x | x
rocsolver_geqrf | x | x | x | x
rocsolver_gerq2 | x | x | x | x
rocsolver_gerqf | x | x | x | x
rocsolver_gelq2 | x | x | x | x
rocsolver_gelqf | x | x | x | x
rocsolver_geql2 | x | x | x | x
rocsolver_geqlf | x | x | x | x

Problem and matrix reductions
Function | single | double | single complex | double complex
--- | --- | --- | --- | ---
rocsolver_sytd2 | x | x |  |
rocsolver_sytrd | x | x |  |
rocsolver_sygs2 | x | x |  |
rocsolver_sygst | x | x |  |
rocsolver_hetd2 |  |  | x | x
rocsolver_hetrd |  |  | x | x
rocsolver_hegs2 |  |  | x | x
rocsolver_hegst |  |  | x | x
rocsolver_gebd2 | x | x | x | x
rocsolver_gebrd | x | x | x | x

Linear-systems solvers
Function | single | double | single complex | double complex
--- | --- | --- | --- | ---
rocsolver_trtri | x | x | x | x
rocsolver_getri | x | x | x | x
rocsolver_getrs | x | x | x | x
rocsolver_gesv | x | x | x | x
rocsolver_potri | x | x | x | x
rocsolver_potrs | x | x | x | x
rocsolver_posv | x | x | x | x

Least-square solvers
Function | single | double | single complex | double complex
--- | --- | --- | --- | ---
rocsolver_gels | x | x | x | x

Symmetric eigensolvers
Function | single | double | single complex | double complex
--- | --- | --- | --- | ---
rocsolver_syev | x | x |  |
rocsolver_syevd | x | x |  |
rocsolver_syevx | x | x |  |
rocsolver_sygv | x | x |  |
rocsolver_sygvd | x | x |  |
rocsolver_sygvx | x | x |  |
rocsolver_heev |  |  | x | x
rocsolver_heevd |  |  | x | x
rocsolver_heevx |  |  | x | x
rocsolver_hegv |  |  | x | x
rocsolver_hegvd |  |  | x | x
rocsolver_hegvx |  |  | x | x

Singular value decomposition
Function | single | double | single complex | double complex
--- | --- | --- | --- | ---
rocsolver_gesvd | x | x | x | x
rocsolver_gesvdx | x | x | x | x

### LAPACK-like functions

Triangular factorizations
Function | single | double | single complex | double complex
--- | --- | --- | --- | ---
rocsolver_getf2_npvt | x | x | x | x
rocsolver_getrf_npvt | x | x | x | x
rocsolver_geblttrf_npvt | x | x | x | x

Linear-systems solvers
Function | single | double | single complex | double complex
--- | --- | --- | --- | ---
rocsolver_getri_npvt | x | x | x | x
rocsolver_getri_outofplace | x | x | x | x
rocsolver_getri_npvt_outofplace | x | x | x | x
rocsolver_geblttrs_npvt | x | x | x | x

Symmetric eigensolvers
Function | single | double | single complex | double complex
--- | --- | --- | --- | ---
rocsolver_syevj | x | x |  |
rocsolver_sygvj | x | x |  |
rocsolver_heevj |  |  | x | x
rocsolver_hegvj |  |  | x | x

Singular value decomposition
Function | single | double | single complex | double complex
--- | --- | --- | --- | ---
rocsolver_gesvdj | x | x | x | x