Developer Reference for Intel® oneAPI Math Kernel Library for C
Systems of Linear Equations: ScaLAPACK Computational Routines
ScaLAPACK supports routines for the systems of equations with the following types of matrices:
general
general banded
general diagonally dominant-like banded (including general tridiagonal)
symmetric or Hermitian positive-definite
symmetric or Hermitian positive-definite banded
symmetric or Hermitian positive-definite tridiagonal
A diagonally dominant-like matrix is defined as a matrix for which it is known in advance that pivoting is not required in the LU factorization of this matrix.
For the above matrix types, the library includes routines for performing the following computations: factoring the matrix; equilibrating the matrix; solving a system of linear equations; estimating the condition number of a matrix; refining the solution of linear equations and computing its error bounds; inverting the matrix. Note that for some of the listed matrix types only part of the computational routines are provided (for example, routines that refine the solution are not provided for band or tridiagonal matrices). See Table “Computational Routines for Systems of Linear Equations” for full list of available routines.
To solve a particular problem, you can either call two or more computational routines or call a corresponding driver routine that combines several tasks in one call. Thus, to solve a system of linear equations with a general matrix, you can first call p?getrf ( LU factorization) and then p?getrs (computing the solution). Then, you might wish to call p?gerfs to refine the solution and get the error bounds. Alternatively, you can just use the driver routine p?gesvx which performs all these tasks in one call.
Table “Computational Routines for Systems of Linear Equations” lists the ScaLAPACK computational routines for factorizing, equilibrating, and inverting matrices, estimating their condition numbers, solving systems of equations with real matrices, refining the solution, and estimating its error.
Computational Routines for Systems of Linear Equations
Matrix type, storage scheme |
Factorize matrix |
Equilibrate matrix |
Solve system |
Condition number |
Estimate error |
Invert matrix |
|---|---|---|---|---|---|---|
general (partial pivoting) |
p?getrf (Computes the LU factorization of a general m-by-n distributed matrix.) |
p?geequ (Computes row and column scaling factors intended to equilibrate a general rectangular distributed matrix and reduce its condition number.) |
p?getrs (Solves a system of distributed linear equations with a general square matrix, using the LU factorization computed by p?getrf.) |
p?gecon (Estimates the reciprocal of the condition number of a general distributed matrix in either the 1-norm or the infinity-norm.) |
p?gerfs (Improves the computed solution to a system of linear equations and provides error bounds and backward error estimates for the solution.) |
p?getri (Computes the inverse of a LU-factored distributed matrix.) |
general band (partial pivoting) |
p?gbtrf (Computes the LU factorization of a general n-by-n banded distributed matrix.) |
p?gbtrs (Solves a system of distributed linear equations with a general band matrix, using the LU factorization computed by p?gbtrf.) |
||||
general band (no pivoting) |
p?dbtrf (Computes the LU factorization of a n-by-n diagonally dominant-like banded distributed matrix.) |
p?dbtrs (Solves a system of linear equations with a diagonally dominant-like banded distributed matrix using the factorization computed by p?dbtrf.) |
||||
general tridiagonal (no pivoting) |
p?dttrf (Computes the LU factorization of a diagonally dominant-like tridiagonal distributed matrix.) |
p?dttrs (Solves a system of linear equations with a diagonally dominant-like tridiagonal distributed matrix using the factorization computed by p?dttrf.) |
||||
symmetric/Hermitian positive-definite |
p?potrf (Computes the Cholesky factorization of a symmetric (Hermitian) positive-definite distributed matrix.) |
p?poequ (Computes row and column scaling factors intended to equilibrate a symmetric (Hermitian) positive definite distributed matrix and reduce its condition number.) |
p?potrs (Solves a system of linear equations with a Cholesky-factored symmetric/Hermitian distributed positive-definite matrix.) |
p?pocon (Estimates the reciprocal of the condition number (in the 1 - norm) of a symmetric / Hermitian positive-definite distributed matrix.) |
p?porfs (Improves the computed solution to a system of linear equations with symmetric/Hermitian positive definite distributed matrix and provides error bounds and backward error estimates for the solution.) |
p?potri (Computes the inverse of a symmetric/Hermitian positive definite distributed matrix.) |
symmetric/Hermitian positive-definite, band |
p?pbtrf (Computes the Cholesky factorization of a symmetric (Hermitian) positive-definite banded distributed matrix.) |
p?pbtrs (Solves a system of linear equations with a Cholesky-factored symmetric/Hermitian positive-definite band matrix.) |
||||
symmetric/Hermitian positive-definite, tridiagonal |
p?pttrf (Computes the Cholesky factorization of a symmetric (Hermitian) positive-definite tridiagonal distributed matrix.) |
p?pttrs (Solves a system of linear equations with a symmetric (Hermitian) positive-definite tridiagonal distributed matrix using the factorization computed by p?pttrf.) |
||||
triangular |
p?trtrs (Solves a system of linear equations with a triangular distributed matrix.) |
p?trcon (Estimates the reciprocal of the condition number of a triangular distributed matrix in either 1-norm or infinity-norm.) |
p?trrfs (Provides error bounds and backward error estimates for the solution to a system of linear equations with a distributed triangular coefficient matrix.) |
p?trtri (Computes the inverse of a triangular distributed matrix.) |
In this table ? stands for s (single precision real), d (double precision real), c (single precision complex), or z (double precision complex).