p?getrf
p?getrf
Computes the
LU
factorization of a general m-by-n distributed matrix.Syntax
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
);
Include Files
- mkl_scalapack.h
Description
The
p?getrf
function
forms the LU
factorization of a general m
-by-n
distributed matrix sub(A
) = A
(ia
:ia
+m
-1, ja
:ja
+n
-1) asA
= P*L*U
where ) and
P
is a permutation matrix, L
is lower triangular with unit diagonal elements (lower trapezoidal if m
>
n
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.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)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 matrixAindicating the first row and the first column of the matrix sub(A), respectively.
- desca
- (global and local) array of sizedlen_. The array descriptor for the distributed matrixA.
Output Parameters
- a
- Overwritten by local pieces of the factorsLandUfrom the factorizationA=P*L*U. The unit diagonal elements ofLare not stored.
- ipiv
- (local) Array of size.LOCr(m_a)+mb_aContains the pivoting information: local rowiwas interchanged with global rowipiv[. This array is tied to the distributed matrixi-1]A.
- info
- (global)If, the execution is successful.info=0: if theinfo< 0i-th argument is an array and thej-th entry, indexedhad an illegal value, thenj- 1,info= -(i*100+j); if thei-th argument is a scalar and had an illegal value, theninfo=-i.Ifinfo=i> 0,uis 0. The factorization has been completed, but the factoria+i,ja+j-1Uis exactly singular. Division by zero will occur if you use the factorUfor solving a system of linear equations.