Developer Reference

  • 0.10
  • 10/21/2020
  • Public Content
Contents

p?pbtrf

Computes the Cholesky factorization of a symmetric (Hermitian) positive-definite banded distributed matrix.

Syntax

void
pspbtrf
(
char
*uplo
,
MKL_INT
*n
,
MKL_INT
*bw
,
float
*a
,
MKL_INT
*ja
,
MKL_INT
*desca
,
float
*af
,
MKL_INT
*laf
,
float
*work
,
MKL_INT
*lwork
,
MKL_INT
*info
);
void
pdpbtrf
(
char
*uplo
,
MKL_INT
*n
,
MKL_INT
*bw
,
double
*a
,
MKL_INT
*ja
,
MKL_INT
*desca
,
double
*af
,
MKL_INT
*laf
,
double
*work
,
MKL_INT
*lwork
,
MKL_INT
*info
);
void
pcpbtrf
(
char
*uplo
,
MKL_INT
*n
,
MKL_INT
*bw
,
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
pzpbtrf
(
char
*uplo
,
MKL_INT
*n
,
MKL_INT
*bw
,
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?pbtrf
function
computes the Cholesky factorization of an
n
-by-
n
real symmetric or complex Hermitian positive-definite banded distributed matrix
A
(1:
n
,
ja
:
ja
+
n
-1).
The resulting factorization is not the same factorization as returned from LAPACK. Additional permutations are performed on the matrix for the sake of parallelism.
The factorization has the form:
A
(1:
n
,
ja
:
ja
+
n
-1) =
P
*
U
H
*
U
*
P
T
, if
uplo
=
'U'
, or
A
(1:
n
,
ja
:
ja
+
n
-1) =
P*L*L
H
*P
T
, if
uplo
=
'L'
,
where
P
is a permutation matrix and
U
and
L
are banded upper and lower triangular matrices, respectively.
Optimization Notice
Intel's compilers may or may not optimize to the same degree for non-Intel microprocessors for optimizations that are not unique to Intel microprocessors. These optimizations include SSE2, SSE3, and SSSE3 instruction sets and other optimizations. Intel does not guarantee the availability, functionality, or effectiveness of any optimization on microprocessors not manufactured by Intel. Microprocessor-dependent optimizations in this product are intended for use with Intel microprocessors. Certain optimizations not specific to Intel microarchitecture are reserved for Intel microprocessors. Please refer to the applicable product User and Reference Guides for more information regarding the specific instruction sets covered by this notice.
Notice revision #20110804
This notice covers the following instruction sets: SSE2, SSE4.2, AVX2, AVX-512.
Input Parameters
uplo
(global) Must be
'U'
or
'L'
.
If
uplo
=
'U'
, upper triangle of
A
(1:
n
,
ja
:
ja
+
n
-1) is stored;
If
uplo
=
'L'
, lower triangle of
A
(1:
n
,
ja
:
ja
+
n
-1) is stored.
n
(global) The order of the distributed submatrix
A
(1:
n
,
ja
:
ja
+
n
-1).
(
n
0)
.
bw
(global)
The number of superdiagonals of the distributed matrix if
uplo
=
'U'
, or the number of subdiagonals if
uplo
=
'L'
(
bw
0)
.
a
(local)
Pointer into the local memory to an array of size
lld_a
*
LOCc
(
ja
+
n
-1)
.
On entry, this array contains the local pieces of the upper or lower triangle of the symmetric/Hermitian band distributed 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
+2
*bw
)
*bw
.
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
bw
2
.
Output Parameters
a
On exit, if
info
=0
, contains the permuted triangular factor
U
or
L
from the Cholesky factorization of the band matrix
A
(1:
n
,
ja
:
ja
+
n
-1), as specified by
uplo
.
af
(local)
Array of size
laf
. Auxiliary fill-in space. The fill-in space is created in a call to the factorization
function
p?pbtrf
and stored in
af
. Note that if a linear system is to be solved using
p?pbtrs
after the factorization
function
,
af
must not be altered.
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 positive definite, 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

Intel's compilers may or may not optimize to the same degree for non-Intel microprocessors for optimizations that are not unique to Intel microprocessors. These optimizations include SSE2, SSE3, and SSSE3 instruction sets and other optimizations. Intel does not guarantee the availability, functionality, or effectiveness of any optimization on microprocessors not manufactured by Intel. Microprocessor-dependent optimizations in this product are intended for use with Intel microprocessors. Certain optimizations not specific to Intel microarchitecture are reserved for Intel microprocessors. Please refer to the applicable product User and Reference Guides for more information regarding the specific instruction sets covered by this notice.

Notice revision #20110804