Developer Reference

Contents

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) 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.
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 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,
u
ia
+
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.

Product and Performance Information

1

Performance varies by use, configuration and other factors. Learn more at www.Intel.com/PerformanceIndex.