Developer Reference for Intel® oneAPI Math Kernel Library for C
p?getrf
Computes the LU factorization of a general m-by-n distributed matrix.
Syntax
voidpsgetrf ( MKL_INT*m , MKL_INT*n , float*a , MKL_INT*ia , MKL_INT*ja , MKL_INT*desca , MKL_INT*ipiv , MKL_INT*info );
voidpdgetrf ( MKL_INT*m , MKL_INT*n , double*a , MKL_INT*ia , MKL_INT*ja , MKL_INT*desca , MKL_INT*ipiv , MKL_INT*info );
voidpcgetrf ( MKL_INT*m , MKL_INT*n , MKL_Complex8*a , MKL_INT*ia , MKL_INT*ja , MKL_INT*desca , MKL_INT*ipiv , MKL_INT*info );
voidpzgetrf ( MKL_INT*m , MKL_INT*n , MKL_Complex16*a , MKL_INT*ia , MKL_INT*ja , MKL_INT*desca , MKL_INT*ipiv , MKL_INT*info );
Include Files
mkl_scalapack.h
Description
psgetrf pdgetrf pcgetrf pzgetrf The p?getrf routine function 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 routine function uses partial pivoting, with row interchanges.
Input Parameters
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) REAL for psgetrf DOUBLE PRECISION for pdgetrf COMPLEX for pcgetrf DOUBLE COMPLEX for pzgetrf .
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 .
Output Parameters
- 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.