Visible to Intel only — GUID: GUID-A02DB70F-9704-42A4-9071-D409D783D911
Visible to Intel only — GUID: GUID-A02DB70F-9704-42A4-9071-D409D783D911
?getrf
Computes the LU factorization of a general m-by-n matrix.
lapack_int LAPACKE_sgetrf (int matrix_layout , lapack_int m , lapack_int n , float * a , lapack_int lda , lapack_int * ipiv );
lapack_int LAPACKE_dgetrf (int matrix_layout , lapack_int m , lapack_int n , double * a , lapack_int lda , lapack_int * ipiv );
lapack_int LAPACKE_cgetrf (int matrix_layout , lapack_int m , lapack_int n , lapack_complex_float * a , lapack_int lda , lapack_int * ipiv );
lapack_int LAPACKE_zgetrf (int matrix_layout , lapack_int m , lapack_int n , lapack_complex_double * a , lapack_int lda , lapack_int * ipiv );
- mkl.h
The routine computes the LU factorization of a general m-by-n matrix A as
A = P*L*U,
where P is a permutation matrix, L is lower triangular with unit diagonal elements (lower trapezoidal if m > n) and U is upper triangular (upper trapezoidal if m < n). The routine uses partial pivoting, with row interchanges.
This routine supports the Progress Routine feature. See Progress Function for details.
matrix_layout |
Specifies whether matrix storage layout is row major (LAPACK_ROW_MAJOR) or column major (LAPACK_COL_MAJOR). |
m |
The number of rows in the matrix A (m≥ 0). |
n |
The number of columns in A; n≥ 0. |
a |
Array, size at least max(1, lda*n) for column-major layout or max(1, lda*m) for row-major layout. Contains the matrix A. |
lda |
The leading dimension of array a, which must be at least max(1, m) for column-major layout or max(1, n) for row-major layout. |
a |
Overwritten by L and U. The unit diagonal elements of L are not stored. |
ipiv |
Array, size at least max(1,min(m, n)). Contains the pivot indices; for 1 ≤i≤ min(m, n), row i was interchanged with row ipiv(i). |
This function returns a value info.
If info=0, the execution is successful.
If info = -i, parameter i had an illegal value.
If info = i, uii is 0. The factorization has been completed, but U is exactly singular. Division by 0 will occur if you use the factor U for solving a system of linear equations.
The computed L and U are the exact factors of a perturbed matrix A + E, where
|E| ≤ c(min(m,n))ε P|L||U|
c(n) is a modest linear function of n, and ε is the machine precision.
The approximate number of floating-point operations for real flavors is
(2/3)n3 |
If m = n, |
(1/3)n2(3m-n) |
If m>n, |
(1/3)m2(3n-m) |
If m<n. |
The number of operations for complex flavors is four times greater.
After calling this routine with m = n, you can call the following: