Developer Reference

Contents

p?dbtrf

Computes the LU factorization of a n-by-n diagonally dominant-like banded distributed matrix.

Syntax

void
psdbtrf
(
MKL_INT
*n
,
MKL_INT
*bwl
,
MKL_INT
*bwu
,
float
*a
,
MKL_INT
*ja
,
MKL_INT
*desca
,
float
*af
,
MKL_INT
*laf
,
float
*work
,
MKL_INT
*lwork
,
MKL_INT
*info
);
void
pddbtrf
(
MKL_INT
*n
,
MKL_INT
*bwl
,
MKL_INT
*bwu
,
double
*a
,
MKL_INT
*ja
,
MKL_INT
*desca
,
double
*af
,
MKL_INT
*laf
,
double
*work
,
MKL_INT
*lwork
,
MKL_INT
*info
);
void
pcdbtrf
(
MKL_INT
*n
,
MKL_INT
*bwl
,
MKL_INT
*bwu
,
MKL_Complex8
*a
,
MKL_INT
*ja
,
MKL_INT
*desca
,
MKL_Complex8
*af
,
MKL_INT
*laf
,
MKL_Complex8
*work
,
MKL_INT
*lwork
,
MKL_INT
*info
);
void
pzdbtrf
(
MKL_INT
*n
,
MKL_INT
*bwl
,
MKL_INT
*bwu
,
MKL_Complex16
*a
,
MKL_INT
*ja
,
MKL_INT
*desca
,
MKL_Complex16
*af
,
MKL_INT
*laf
,
MKL_Complex16
*work
,
MKL_INT
*lwork
,
MKL_INT
*info
);
Include Files
  • mkl_scalapack.h
Description
The
p?dbtrf
function
computes the LU factorization of a
n
-by-
n
real/complex diagonally dominant-like banded distributed matrix
A
(1:
n
,
ja
:
ja
+
n
-1) without pivoting.
A matrix is called
diagonally dominant-like
if pivoting is not required for LU to be numerically stable.
Note that the resulting factorization is not the same factorization as returned from LAPACK. Additional permutations are performed on the matrix for the sake of parallelism.
Product and Performance Information
Performance varies by use, configuration and other factors. Learn more at www.Intel.com/PerformanceIndex.
Notice revision #20201201
Input Parameters
n
(global) The number of rows and columns in the distributed submatrix
A
(1:
n
,
ja
:
ja
+
n
-1);
n
0
.
bwl
(global) The number of sub-diagonals within the band of
A
(0 ≤
bwl
n-1
)
.
bwu
(global) The number of super-diagonals within the band of
A
(0 ≤
bwu
n-1
)
.
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
n
-by-
n
distributed banded matrix
A
(1:
n
,
ja
:
ja
+
n
-1) to be factored.
ja
(global) The index in the global matrix
A
indicating the start of the matrix to be operated on (which may be either all of
A
or a submatrix of
A
).
desca
(global and local) array of size
dlen_
. The array descriptor for the distributed matrix
A
.
If
dtype_a
= 501
, then
dlen_
7
;
else if
dtype_a
= 1
, then
dlen_
9
.
laf
(local) The size of the array
af
.
Must be
laf
NB
*(
bwl
+
bwu
)+6*(max(
bwl
,
bwu
))
2
.
If
laf
is not large enough, an error code will be returned and the minimum acceptable size will be returned in
af
[0]
.
work
(local) Workspace array of size
lwork
.
lwork
(local or global) The size of the
work
array, must be
lwork
(max(
bwl
,
bwu
))
2
. If
lwork
is too small, the minimal acceptable size will be returned in
work
[0]
and an error code is returned.
Output Parameters
a
On exit, this array contains details of the factorization. Note that additional permutations are performed on the matrix, so that the factors returned are different from those returned by
LAPACK
.
af
(local)
Array of size
laf
.
Auxiliary fill-in space. The fill-in space is created in a call to the factorization
function
p?dbtrf
and is stored in
af
.
Note that if a linear system is to be solved using
p?dbtrs
after the factorization
function
,
af
must not be altered after the factorization.
work
[0]
On exit,
work
[0]
contains the minimum value of
lwork
required for optimum performance.
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
.
info
>
0
:
If
info
=
k
NPROCS
, the submatrix stored on processor
info
and factored locally was not diagonally dominant-like, and the factorization was not completed.
If
info
=
k
>
NPROCS
, the submatrix stored on processor
info
-
NPROCS
representing interactions with other processors was not nonsingular, and the factorization was not completed.

Product and Performance Information

1

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