# LAPACK Routines: Linear Equations

Intel® Math Kernel Library implements routines from the LAPACK package that are used for solving systems of linear equations and performing a number of related computational tasks. The library includes LAPACK routines for both real and complex data. Routines are supported for systems of equations with the following types of matrices:

- general

- banded

- symmetric or Hermitian positive-definite (both full and packed storage)

- symmetric or Hermitian positive-definite banded

- symmetric or Hermitian indefinite (both full and packed storage)

- symmetric or Hermitian indefinite banded

- triangular (both full and packed storage)

- triangular banded

- tridiagonal.

For each of the above matrix types, the library includes routines for performing the following computations:

- factoring the matrix (except for triangular matrices)

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

To solve a particular problem, you can call two or more computational routines or call a corresponding driver routine that combines several tasks in one call, such as ?gesv for factoring and solving. For example, to solve a system of linear equations with a general matrix, call ?getrf (LU factorization) and then ?getrs (computing the solution). Then, call ?gerfs to refine the solution and get the error bounds. Alternatively, use the driver routine ?gesvx that performs all these tasks in one call.

### Warning

LAPACK routines expect that input matrices do not contain INF or NaN values. When input data is inappropriate for LAPACK, problems may arise, including possible hangs.

Starting from release 8.0, Intel MKL along with Fortran 77 interface to LAPACK computational and driver routines also supports Fortran 95 interface which uses simplified routine calls with shorter argument lists. The syntax section of the routine description gives the calling sequence for Fortran 95 interface immediately after Fortran 77 calls.

- Routine Naming Conventions
- Fortran 95 Interface Conventions
- Matrix Storage Schemes
- Mathematical Notation
- Error Analysis
- Computational Routines
- Driver Routines