LAPACK Routines#

oneMKL provides a DPC++ interface to select routines from the Linear Algebra PACKage (LAPACK), as well as several LAPACK-like extension routines. LAPACK routines require column major layout of matrices.

LAPACK Linear Equation Routines#

LAPACK Linear Equation routines are used for factoring a matrix, solving a system of linear equations, solving linear least squares problems, and inverting a matrix. The following table lists the LAPACK Linear Equation routine groups.

Routines

Scratchpad Size Routines

Description

geqrf

geqrf_scratchpad_size

Computes the QR factorization of a general m-by-n matrix.

gerqf

gerqf_scratchpad_size

Computes the RQ factorization of a general m-by-n matrix.

getrf

getrf_scratchpad_size

Computes the LU factorization of a general m-by-n matrix.

getri

getri_scratchpad_size

Computes the inverse of an LU-factored general matrix.

getrs

getrs_scratchpad_size

Solves a system of linear equations with an LU-factored square coefficient matrix, with multiple right-hand sides.

hetrf

hetrf_scratchpad_size

Computes the Bunch-Kaufman factorization of a complex Hermitian matrix.

orgqr

orgqr_scratchpad_size

Generates the real orthogonal matrix \(Q\) of the QR factorization formed by geqrf.

ormqr

ormqr_scratchpad_size

Multiplies a real matrix by the orthogonal matrix \(Q\) of the QR factorization formed by geqrf.

ormrq

ormrq_scratchpad_size

Multiplies a real matrix by the orthogonal matrix \(Q\) of the RQ factorization formed by gerqf.

potrf

potrf_scratchpad_size

Computes the Cholesky factorization of a symmetric (Hermitian) positive-definite matrix.

potri

potri_scratchpad_size

Computes the inverse of a Cholesky-factored symmetric (Hermitian) positive-definite matrix.

potrs

potrs_scratchpad_size

Solves a system of linear equations with a Cholesky-factored symmetric (Hermitian) positive-definite coefficient matrix, with multiple right-hand sides.

sytrf

sytrf_scratchpad_size

Computes the Bunch-Kaufman factorization of a symmetric matrix.

trtrs

trtrs_scratchpad_size

Solves a system of linear equations with a triangular coefficient matrix, with multiple right-hand sides.

ungqr

ungqr_scratchpad_size

Generates the complex unitary matrix \(Q\) of the QR factorization formed by geqrf.

unmqr

unmqr_scratchpad_size

Multiplies a complex matrix by the unitary matrix \(Q\) of the QR factorization formed by geqrf.

unmrq

unmrq_scratchpad_size

Multiplies a complex matrix by the unitary matrix \(Q\) of the RQ factorization formed by gerqf.

LAPACK Singular Value and Eigenvalue Problem Routines#

LAPACK Singular Value and Eigenvalue Problem routines are used for singular value and eigenvalue problems, and for performing a number of related computational tasks. The following table lists the LAPACK Singular Value and Eigenvalue Problem routine groups.

Routines

Scratchpad Size Routines

Description

gebrd

gebrd_scratchpad_size

Reduces a general matrix to bidiagonal form.

gesvd

gesvd_scratchpad_size

Computes the singular value decomposition of a general rectangular matrix.

heevd

heevd_scratchpad_size

Computes all eigenvalues and, optionally, all eigenvectors of a complex Hermitian matrix using divide and conquer algorithm.

hegvd

hegvd_scratchpad_size

Computes all eigenvalues and, optionally, all eigenvectors of a complex generalized Hermitian definite eigenproblem using divide and conquer algorithm.

hetrd

hetrd_scratchpad_size

Reduces a complex Hermitian matrix to tridiagonal form.

orgbr

orgbr_scratchpad_size

Generates the real orthogonal matrix \(Q\) or \(P^T\) determined by gebrd.

orgtr

orgtr_scratchpad_size

Generates the real orthogonal matrix \(Q\) determined by sytrd.

ormtr

ormtr_scratchpad_size

Multiplies a real matrix by the orthogonal matrix \(Q\) determined by sytrd.

syevd

syevd_scratchpad_size

Computes all eigenvalues and, optionally, all eigenvectors of a real symmetric matrix using divide and conquer algorithm.

sygvd

sygvd_scratchpad_size

Computes all eigenvalues and, optionally, all eigenvectors of a real generalized symmetric definite eigenproblem using divide and conquer algorithm.

sytrd

sytrd_scratchpad_size

Reduces a real symmetric matrix to tridiagonal form.

ungbr

ungbr_scratchpad_size

Generates the complex unitary matrix \(Q\) or \(P^T\) determined by gebrd.

ungtr

ungtr_scratchpad_size

Generates the complex unitary matrix \(Q\) determined by hetrd.

unmtr

unmtr_scratchpad_size

Multiplies a complex matrix by the unitary matrix \(Q\) determined by hetrd.

LAPACK-like Extensions Routines#

oneAPI Math Kernel Library DPC++ provides additional routines to extend the functionality of the LAPACK routines. These include routines to compute many independent factorizations, linear equation solutions, and similar. The following table lists the LAPACK-like Extensions routine groups.

Routines

Scratchpad Size Routines

Description

geqrf_batch

geqrf_batch_scratchpad_size

Computes the QR factorizations of a batch of general matrices.

getrf_batch

getrf_batch_scratchpad_size

Computes the LU factorizations of a batch of general matrices.

getri_batch

getri_batch_scratchpad_size

Computes the inverses of a batch of LU-factored general matrices.

getrs_batch

getrs_batch_scratchpad_size

Solves systems of linear equations with a batch of LU-factored square coefficient matrices, with multiple right-hand sides.

orgqr_batch

orgqr_batch_scratchpad_size

Generates the real orthogonal/complex unitary matrix \(Q_i\) of the QR factorization formed by geqrf_batch.

potrf_batch

potrf_batch_scratchpad_size

Computes the Cholesky factorization of a batch of symmetric (Hermitian) positive-definite matrices.

potrs_batch

potrs_batch_scratchpad_size

Solves systems of linear equations with a batch of Cholesky-factored symmetric (Hermitian) positive-definite coefficient matrices, with multiple right-hand sides.

ungqr_batch

ungqr_batch_scratchpad_size

Generates the complex unitary matrix \(Q_i\) with the QR factorization formed by geqrf_batch.

Note

Different arrays used as parameters to oneMKL LAPACK routines must not overlap.

Warning

LAPACK routines assume that input matrices do not contain IEEE 754 special values such as INF or NaN values. Using these special values may cause LAPACK to return unexpected results or become unstable.

Parent topic: Dense Linear Algebra