Visible to Intel only — GUID: GUID-A41D3B4D-CD30-47B8-AD47-346EDE1A3C61
Visible to Intel only — GUID: GUID-A41D3B4D-CD30-47B8-AD47-346EDE1A3C61
p?getrf
Computes the LU factorization of a general m-by-n distributed matrix.
void psgetrf (MKL_INT *m , MKL_INT *n , float *a , MKL_INT *ia , MKL_INT *ja , MKL_INT *desca , MKL_INT *ipiv , MKL_INT *info );
void pdgetrf (MKL_INT *m , MKL_INT *n , double *a , MKL_INT *ia , MKL_INT *ja , MKL_INT *desca , MKL_INT *ipiv , MKL_INT *info );
void pcgetrf (MKL_INT *m , MKL_INT *n , MKL_Complex8 *a , MKL_INT *ia , MKL_INT *ja , MKL_INT *desca , MKL_INT *ipiv , MKL_INT *info );
void pzgetrf (MKL_INT *m , MKL_INT *n , MKL_Complex16 *a , MKL_INT *ia , MKL_INT *ja , MKL_INT *desca , MKL_INT *ipiv , MKL_INT *info );
- mkl_scalapack.h
The p?getrffunction forms the LU factorization of a general m-by-n distributed matrix sub(A) = A(ia:ia+m-1, ja:ja+n-1) 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). L and U are stored in sub(A).
The function uses partial pivoting, with row interchanges.
This function supports the Progress Routine feature. See mkl_progress for details.
- m
-
(global) The number of rows in the distributed matrix sub(A); m≥0.
- n
-
(global) The number of columns in the distributed matrix sub(A); n≥0.
- a
-
(local)
Pointer into the local memory to an array of local size lld_a*LOCc(ja+n-1).
Contains the local pieces of the distributed matrix sub(A) to be factored.
- ia, ja
-
(global) The row and column indices in the global matrix A indicating the first row and the first column of the matrix sub(A), respectively.
- desca
-
(global and local) array of size dlen_. The array descriptor for the distributed matrix A.
- a
-
Overwritten by local pieces of the factors L and U from the factorization A = P*L*U. The unit diagonal elements of L are not stored.
- ipiv
-
(local) Array of size LOCr(m_a)+ mb_a.
Contains the pivoting information: local row i was interchanged with global row ipiv[i-1]. This array is tied to the distributed matrix A.
- info
-
(global)
If info=0, the execution is successful.
info < 0: if the i-th argument is an array and the j-th entry, indexed j - 1, had an illegal value, then info = -(i*100+j); if the i-th argument is a scalar and had an illegal value, then info = -i.
If info = i > 0, uia+i, ja+j-1 is 0. The factorization has been completed, but the factor U is exactly singular. Division by zero will occur if you use the factor U for solving a system of linear equations.