Skip to main content
`Ctrl`+`K`

# hipSOLVER LAPACK-like functions

LAPACK routines solve complex numerical linear algebra problems. These functions are organized into the following categories:

- Symmetric eigensolvers: Eigenproblems for symmetric matrices.

- Singular value decomposition: Singular values and related problems for general matrices.

## Symmetric eigensolvers

### hipsolver<type>syevdx_bufferSize()

hipsolverStatus_t hipsolverDsyevdx_bufferSize(hipsolverHandle_t handle, hipsolverEigMode_t jobz, hipsolverEigRange_t range, hipblasFillMode_t uplo, int n, const double *A, int lda, double vl, double vu, int il, int iu, int *nev, const double *W, int *lwork)

hipsolverStatus_t hipsolverSsyevdx_bufferSize(hipsolverHandle_t handle, hipsolverEigMode_t jobz, hipsolverEigRange_t range, hipblasFillMode_t uplo, int n, const float *A, int lda, float vl, float vu, int il, int iu, int *nev, const float *W, int *lwork)

### hipsolver<type>heevdx_bufferSize()

hipsolverStatus_t hipsolverZheevdx_bufferSize(hipsolverHandle_t handle, hipsolverEigMode_t jobz, hipsolverEigRange_t range, hipblasFillMode_t uplo, int n, const hipDoubleComplex *A, int lda, double vl, double vu, int il, int iu, int *nev, const double *W, int *lwork)

hipsolverStatus_t hipsolverCheevdx_bufferSize(hipsolverHandle_t handle, hipsolverEigMode_t jobz, hipsolverEigRange_t range, hipblasFillMode_t uplo, int n, const hipFloatComplex *A, int lda, float vl, float vu, int il, int iu, int *nev, const float *W, int *lwork)

### hipsolver<type>syevdx()

hipsolverStatus_t hipsolverDsyevdx(hipsolverHandle_t handle, hipsolverEigMode_t jobz, hipsolverEigRange_t range, hipblasFillMode_t uplo, int n, double *A, int lda, double vl, double vu, int il, int iu, int *nev, double *W, double *work, int lwork, int *devInfo)

hipsolverStatus_t hipsolverSsyevdx(hipsolverHandle_t handle, hipsolverEigMode_t jobz, hipsolverEigRange_t range, hipblasFillMode_t uplo, int n, float *A, int lda, float vl, float vu, int il, int iu, int *nev, float *W, float *work, int lwork, int *devInfo)

### hipsolver<type>heevdx()

hipsolverStatus_t hipsolverZheevdx(hipsolverHandle_t handle, hipsolverEigMode_t jobz, hipsolverEigRange_t range, hipblasFillMode_t uplo, int n, hipDoubleComplex *A, int lda, double vl, double vu, int il, int iu, int *nev, double *W, hipDoubleComplex *work, int lwork, int *devInfo)

hipsolverStatus_t hipsolverCheevdx(hipsolverHandle_t handle, hipsolverEigMode_t jobz, hipsolverEigRange_t range, hipblasFillMode_t uplo, int n, hipFloatComplex *A, int lda, float vl, float vu, int il, int iu, int *nev, float *W, hipFloatComplex *work, int lwork, int *devInfo)

### hipsolver<type>syevj_bufferSize()

hipsolverStatus_t hipsolverDsyevj_bufferSize(hipsolverHandle_t handle, hipsolverEigMode_t jobz, hipsolverFillMode_t uplo, int n, double *A, int lda, double *W, int *lwork, hipsolverSyevjInfo_t params)

hipsolverStatus_t hipsolverSsyevj_bufferSize(hipsolverHandle_t handle, hipsolverEigMode_t jobz, hipsolverFillMode_t uplo, int n, float *A, int lda, float *W, int *lwork, hipsolverSyevjInfo_t params)

### hipsolver<type>heevj_bufferSize()

hipsolverStatus_t hipsolverZheevj_bufferSize(hipsolverHandle_t handle, hipsolverEigMode_t jobz, hipsolverFillMode_t uplo, int n, hipDoubleComplex *A, int lda, double *W, int *lwork, hipsolverSyevjInfo_t params)

hipsolverStatus_t hipsolverCheevj_bufferSize(hipsolverHandle_t handle, hipsolverEigMode_t jobz, hipsolverFillMode_t uplo, int n, hipFloatComplex *A, int lda, float *W, int *lwork, hipsolverSyevjInfo_t params)

### hipsolver<type>syevjBatched_bufferSize()

hipsolverStatus_t hipsolverDsyevjBatched_bufferSize(hipsolverHandle_t handle, hipsolverEigMode_t jobz, hipsolverFillMode_t uplo, int n, double *A, int lda, double *W, int *lwork, hipsolverSyevjInfo_t params, int batch_count)

hipsolverStatus_t hipsolverSsyevjBatched_bufferSize(hipsolverHandle_t handle, hipsolverEigMode_t jobz, hipsolverFillMode_t uplo, int n, float *A, int lda, float *W, int *lwork, hipsolverSyevjInfo_t params, int batch_count)

### hipsolver<type>heevjBatched_bufferSize()

hipsolverStatus_t hipsolverZheevjBatched_bufferSize(hipsolverHandle_t handle, hipsolverEigMode_t jobz, hipsolverFillMode_t uplo, int n, hipDoubleComplex *A, int lda, double *W, int *lwork, hipsolverSyevjInfo_t params, int batch_count)

hipsolverStatus_t hipsolverCheevjBatched_bufferSize(hipsolverHandle_t handle, hipsolverEigMode_t jobz, hipsolverFillMode_t uplo, int n, hipFloatComplex *A, int lda, float *W, int *lwork, hipsolverSyevjInfo_t params, int batch_count)

### hipsolver<type>syevj()

hipsolverStatus_t hipsolverDsyevj(hipsolverHandle_t handle, hipsolverEigMode_t jobz, hipsolverFillMode_t uplo, int n, double *A, int lda, double *W, double *work, int lwork, int *devInfo, hipsolverSyevjInfo_t params)

hipsolverStatus_t hipsolverSsyevj(hipsolverHandle_t handle, hipsolverEigMode_t jobz, hipsolverFillMode_t uplo, int n, float *A, int lda, float *W, float *work, int lwork, int *devInfo, hipsolverSyevjInfo_t params)

### hipsolver<type>heevj()

hipsolverStatus_t hipsolverZheevj(hipsolverHandle_t handle, hipsolverEigMode_t jobz, hipsolverFillMode_t uplo, int n, hipDoubleComplex *A, int lda, double *W, hipDoubleComplex *work, int lwork, int *devInfo, hipsolverSyevjInfo_t params)

hipsolverStatus_t hipsolverCheevj(hipsolverHandle_t handle, hipsolverEigMode_t jobz, hipsolverFillMode_t uplo, int n, hipFloatComplex *A, int lda, float *W, hipFloatComplex *work, int lwork, int *devInfo, hipsolverSyevjInfo_t params)

### hipsolver<type>syevjBatched()

hipsolverStatus_t hipsolverDsyevjBatched(hipsolverHandle_t handle, hipsolverEigMode_t jobz, hipsolverFillMode_t uplo, int n, double *A, int lda, double *W, double *work, int lwork, int *devInfo, hipsolverSyevjInfo_t params, int batch_count)

hipsolverStatus_t hipsolverSsyevjBatched(hipsolverHandle_t handle, hipsolverEigMode_t jobz, hipsolverFillMode_t uplo, int n, float *A, int lda, float *W, float *work, int lwork, int *devInfo, hipsolverSyevjInfo_t params, int batch_count)

### hipsolver<type>heevjBatched()

hipsolverStatus_t hipsolverZheevjBatched(hipsolverHandle_t handle, hipsolverEigMode_t jobz, hipsolverFillMode_t uplo, int n, hipDoubleComplex *A, int lda, double *W, hipDoubleComplex *work, int lwork, int *devInfo, hipsolverSyevjInfo_t params, int batch_count)

hipsolverStatus_t hipsolverCheevjBatched(hipsolverHandle_t handle, hipsolverEigMode_t jobz, hipsolverFillMode_t uplo, int n, hipFloatComplex *A, int lda, float *W, hipFloatComplex *work, int lwork, int *devInfo, hipsolverSyevjInfo_t params, int batch_count)

### hipsolver<type>sygvdx_bufferSize()

hipsolverStatus_t hipsolverDsygvdx_bufferSize(hipsolverHandle_t handle, hipsolverEigType_t itype, hipsolverEigMode_t jobz, hipsolverEigRange_t range, hipblasFillMode_t uplo, int n, const double *A, int lda, const double *B, int ldb, double vl, double vu, int il, int iu, int *nev, const double *W, int *lwork)

hipsolverStatus_t hipsolverSsygvdx_bufferSize(hipsolverHandle_t handle, hipsolverEigType_t itype, hipsolverEigMode_t jobz, hipsolverEigRange_t range, hipblasFillMode_t uplo, int n, const float *A, int lda, const float *B, int ldb, float vl, float vu, int il, int iu, int *nev, const float *W, int *lwork)

### hipsolver<type>hegvdx_bufferSize()

hipsolverStatus_t hipsolverZhegvdx_bufferSize(hipsolverHandle_t handle, hipsolverEigType_t itype, hipsolverEigMode_t jobz, hipsolverEigRange_t range, hipblasFillMode_t uplo, int n, const hipDoubleComplex *A, int lda, const hipDoubleComplex *B, int ldb, double vl, double vu, int il, int iu, int *nev, const double *W, int *lwork)

hipsolverStatus_t hipsolverChegvdx_bufferSize(hipsolverHandle_t handle, hipsolverEigType_t itype, hipsolverEigMode_t jobz, hipsolverEigRange_t range, hipblasFillMode_t uplo, int n, const hipFloatComplex *A, int lda, const hipFloatComplex *B, int ldb, float vl, float vu, int il, int iu, int *nev, const float *W, int *lwork)

### hipsolver<type>sygvdx()

hipsolverStatus_t hipsolverDsygvdx(hipsolverHandle_t handle, hipsolverEigType_t itype, hipsolverEigMode_t jobz, hipsolverEigRange_t range, hipblasFillMode_t uplo, int n, double *A, int lda, double *B, int ldb, double vl, double vu, int il, int iu, int *nev, double *W, double *work, int lwork, int *devInfo)

hipsolverStatus_t hipsolverSsygvdx(hipsolverHandle_t handle, hipsolverEigType_t itype, hipsolverEigMode_t jobz, hipsolverEigRange_t range, hipblasFillMode_t uplo, int n, float *A, int lda, float *B, int ldb, float vl, float vu, int il, int iu, int *nev, float *W, float *work, int lwork, int *devInfo)

### hipsolver<type>hegvdx()

hipsolverStatus_t hipsolverZhegvdx(hipsolverHandle_t handle, hipsolverEigType_t itype, hipsolverEigMode_t jobz, hipsolverEigRange_t range, hipblasFillMode_t uplo, int n, hipDoubleComplex *A, int lda, hipDoubleComplex *B, int ldb, double vl, double vu, int il, int iu, int *nev, double *W, hipDoubleComplex *work, int lwork, int *devInfo)

hipsolverStatus_t hipsolverChegvdx(hipsolverHandle_t handle, hipsolverEigType_t itype, hipsolverEigMode_t jobz, hipsolverEigRange_t range, hipblasFillMode_t uplo, int n, hipFloatComplex *A, int lda, hipFloatComplex *B, int ldb, float vl, float vu, int il, int iu, int *nev, float *W, hipFloatComplex *work, int lwork, int *devInfo)

### hipsolver<type>sygvj_bufferSize()

hipsolverStatus_t hipsolverDsygvj_bufferSize(hipsolverHandle_t handle, hipsolverEigType_t itype, hipsolverEigMode_t jobz, hipsolverFillMode_t uplo, int n, double *A, int lda, double *B, int ldb, double *W, int *lwork, hipsolverSyevjInfo_t params)

hipsolverStatus_t hipsolverSsygvj_bufferSize(hipsolverHandle_t handle, hipsolverEigType_t itype, hipsolverEigMode_t jobz, hipsolverFillMode_t uplo, int n, float *A, int lda, float *B, int ldb, float *W, int *lwork, hipsolverSyevjInfo_t params)

### hipsolver<type>hegvj_bufferSize()

hipsolverStatus_t hipsolverZhegvj_bufferSize(hipsolverHandle_t handle, hipsolverEigType_t itype, hipsolverEigMode_t jobz, hipsolverFillMode_t uplo, int n, hipDoubleComplex *A, int lda, hipDoubleComplex *B, int ldb, double *W, int *lwork, hipsolverSyevjInfo_t params)

hipsolverStatus_t hipsolverChegvj_bufferSize(hipsolverHandle_t handle, hipsolverEigType_t itype, hipsolverEigMode_t jobz, hipsolverFillMode_t uplo, int n, hipFloatComplex *A, int lda, hipFloatComplex *B, int ldb, float *W, int *lwork, hipsolverSyevjInfo_t params)

### hipsolver<type>sygvj()

hipsolverStatus_t hipsolverDsygvj(hipsolverHandle_t handle, hipsolverEigType_t itype, hipsolverEigMode_t jobz, hipsolverFillMode_t uplo, int n, double *A, int lda, double *B, int ldb, double *W, double *work, int lwork, int *devInfo, hipsolverSyevjInfo_t params)

hipsolverStatus_t hipsolverSsygvj(hipsolverHandle_t handle, hipsolverEigType_t itype, hipsolverEigMode_t jobz, hipsolverFillMode_t uplo, int n, float *A, int lda, float *B, int ldb, float *W, float *work, int lwork, int *devInfo, hipsolverSyevjInfo_t params)

### hipsolver<type>hegvj()

hipsolverStatus_t hipsolverZhegvj(hipsolverHandle_t handle, hipsolverEigType_t itype, hipsolverEigMode_t jobz, hipsolverFillMode_t uplo, int n, hipDoubleComplex *A, int lda, hipDoubleComplex *B, int ldb, double *W, hipDoubleComplex *work, int lwork, int *devInfo, hipsolverSyevjInfo_t params)

hipsolverStatus_t hipsolverChegvj(hipsolverHandle_t handle, hipsolverEigType_t itype, hipsolverEigMode_t jobz, hipsolverFillMode_t uplo, int n, hipFloatComplex *A, int lda, hipFloatComplex *B, int ldb, float *W, hipFloatComplex *work, int lwork, int *devInfo, hipsolverSyevjInfo_t params)

## Singular value decomposition

### hipsolver<type>gesvdj_bufferSize()

hipsolverStatus_t hipsolverZgesvdj_bufferSize(hipsolverHandle_t handle, hipsolverEigMode_t jobz, int econ, int m, int n, const hipDoubleComplex *A, int lda, const double *S, const hipDoubleComplex *U, int ldu, const hipDoubleComplex *V, int ldv, int *lwork, hipsolverGesvdjInfo_t params)

hipsolverStatus_t hipsolverCgesvdj_bufferSize(hipsolverHandle_t handle, hipsolverEigMode_t jobz, int econ, int m, int n, const hipFloatComplex *A, int lda, const float *S, const hipFloatComplex *U, int ldu, const hipFloatComplex *V, int ldv, int *lwork, hipsolverGesvdjInfo_t params)

hipsolverStatus_t hipsolverDgesvdj_bufferSize(hipsolverHandle_t handle, hipsolverEigMode_t jobz, int econ, int m, int n, const double *A, int lda, const double *S, const double *U, int ldu, const double *V, int ldv, int *lwork, hipsolverGesvdjInfo_t params)

hipsolverStatus_t hipsolverSgesvdj_bufferSize(hipsolverHandle_t handle, hipsolverEigMode_t jobz, int econ, int m, int n, const float *A, int lda, const float *S, const float *U, int ldu, const float *V, int ldv, int *lwork, hipsolverGesvdjInfo_t params)

### hipsolver<type>gesvdjBatched_bufferSize()

hipsolverStatus_t hipsolverZgesvdjBatched_bufferSize(hipsolverHandle_t handle, hipsolverEigMode_t jobz, int m, int n, const hipDoubleComplex *A, int lda, const double *S, const hipDoubleComplex *U, int ldu, const hipDoubleComplex *V, int ldv, int *lwork, hipsolverGesvdjInfo_t params, int batch_count)

hipsolverStatus_t hipsolverCgesvdjBatched_bufferSize(hipsolverHandle_t handle, hipsolverEigMode_t jobz, int m, int n, const hipFloatComplex *A, int lda, const float *S, const hipFloatComplex *U, int ldu, const hipFloatComplex *V, int ldv, int *lwork, hipsolverGesvdjInfo_t params, int batch_count)

hipsolverStatus_t hipsolverDgesvdjBatched_bufferSize(hipsolverHandle_t handle, hipsolverEigMode_t jobz, int m, int n, const double *A, int lda, const double *S, const double *U, int ldu, const double *V, int ldv, int *lwork, hipsolverGesvdjInfo_t params, int batch_count)

hipsolverStatus_t hipsolverSgesvdjBatched_bufferSize(hipsolverHandle_t handle, hipsolverEigMode_t jobz, int m, int n, const float *A, int lda, const float *S, const float *U, int ldu, const float *V, int ldv, int *lwork, hipsolverGesvdjInfo_t params, int batch_count)

### hipsolver<type>gesvdj()

hipsolverStatus_t hipsolverZgesvdj(hipsolverHandle_t handle, hipsolverEigMode_t jobz, int econ, int m, int n, hipDoubleComplex *A, int lda, double *S, hipDoubleComplex *U, int ldu, hipDoubleComplex *V, int ldv, hipDoubleComplex *work, int lwork, int *devInfo, hipsolverGesvdjInfo_t params)

hipsolverStatus_t hipsolverCgesvdj(hipsolverHandle_t handle, hipsolverEigMode_t jobz, int econ, int m, int n, hipFloatComplex *A, int lda, float *S, hipFloatComplex *U, int ldu, hipFloatComplex *V, int ldv, hipFloatComplex *work, int lwork, int *devInfo, hipsolverGesvdjInfo_t params)

hipsolverStatus_t hipsolverDgesvdj(hipsolverHandle_t handle, hipsolverEigMode_t jobz, int econ, int m, int n, double *A, int lda, double *S, double *U, int ldu, double *V, int ldv, double *work, int lwork, int *devInfo, hipsolverGesvdjInfo_t params)

hipsolverStatus_t hipsolverSgesvdj(hipsolverHandle_t handle, hipsolverEigMode_t jobz, int econ, int m, int n, float *A, int lda, float *S, float *U, int ldu, float *V, int ldv, float *work, int lwork, int *devInfo, hipsolverGesvdjInfo_t params)

### hipsolver<type>gesvdjBatched()

hipsolverStatus_t hipsolverZgesvdjBatched(hipsolverHandle_t handle, hipsolverEigMode_t jobz, int m, int n, hipDoubleComplex *A, int lda, double *S, hipDoubleComplex *U, int ldu, hipDoubleComplex *V, int ldv, hipDoubleComplex *work, int lwork, int *devInfo, hipsolverGesvdjInfo_t params, int batch_count)

hipsolverStatus_t hipsolverCgesvdjBatched(hipsolverHandle_t handle, hipsolverEigMode_t jobz, int m, int n, hipFloatComplex *A, int lda, float *S, hipFloatComplex *U, int ldu, hipFloatComplex *V, int ldv, hipFloatComplex *work, int lwork, int *devInfo, hipsolverGesvdjInfo_t params, int batch_count)

hipsolverStatus_t hipsolverDgesvdjBatched(hipsolverHandle_t handle, hipsolverEigMode_t jobz, int m, int n, double *A, int lda, double *S, double *U, int ldu, double *V, int ldv, double *work, int lwork, int *devInfo, hipsolverGesvdjInfo_t params, int batch_count)

hipsolverStatus_t hipsolverSgesvdjBatched(hipsolverHandle_t handle, hipsolverEigMode_t jobz, int m, int n, float *A, int lda, float *S, float *U, int ldu, float *V, int ldv, float *work, int lwork, int *devInfo, hipsolverGesvdjInfo_t params, int batch_count)