Developer Reference

  • 0.9
  • 09/09/2020
  • Public Content
Contents

p?dbtrsv

Computes an LU factorization of a general triangular matrix with no pivoting. The
function
is called by
p?dbtrs
.

Syntax

void
psdbtrsv
(
char
*uplo
,
char
*trans
,
MKL_INT
*n
,
MKL_INT
*bwl
,
MKL_INT
*bwu
,
MKL_INT
*nrhs
,
float
*a
,
MKL_INT
*ja
,
MKL_INT
*desca
,
float
*b
,
MKL_INT
*ib
,
MKL_INT
*descb
,
float
*af
,
MKL_INT
*laf
,
float
*work
,
MKL_INT
*lwork
,
MKL_INT
*info
);
void
pddbtrsv
(
char
*uplo
,
char
*trans
,
MKL_INT
*n
,
MKL_INT
*bwl
,
MKL_INT
*bwu
,
MKL_INT
*nrhs
,
double
*a
,
MKL_INT
*ja
,
MKL_INT
*desca
,
double
*b
,
MKL_INT
*ib
,
MKL_INT
*descb
,
double
*af
,
MKL_INT
*laf
,
double
*work
,
MKL_INT
*lwork
,
MKL_INT
*info
);
void
pcdbtrsv
(
char
*uplo
,
char
*trans
,
MKL_INT
*n
,
MKL_INT
*bwl
,
MKL_INT
*bwu
,
MKL_INT
*nrhs
,
MKL_Complex8
*a
,
MKL_INT
*ja
,
MKL_INT
*desca
,
MKL_Complex8
*b
,
MKL_INT
*ib
,
MKL_INT
*descb
,
MKL_Complex8
*af
,
MKL_INT
*laf
,
MKL_Complex8
*work
,
MKL_INT
*lwork
,
MKL_INT
*info
);
void
pzdbtrsv
(
char
*uplo
,
char
*trans
,
MKL_INT
*n
,
MKL_INT
*bwl
,
MKL_INT
*bwu
,
MKL_INT
*nrhs
,
MKL_Complex16
*a
,
MKL_INT
*ja
,
MKL_INT
*desca
,
MKL_Complex16
*b
,
MKL_INT
*ib
,
MKL_INT
*descb
,
MKL_Complex16
*af
,
MKL_INT
*laf
,
MKL_Complex16
*work
,
MKL_INT
*lwork
,
MKL_INT
*info
);
Include Files
  • mkl_scalapack.h
Description
The
p?dbtrsv
function
solves a banded triangular system of linear equations
A
(1 :
n
,
ja
:
ja
+
n
-1)
*
X
=
B
(
ib
:
ib
+
n
-1, 1 :
nrhs
) or
A
(1 :
n
,
ja
:
ja
+
n
-1)
T
*
X
=
B
(
ib
:
ib
+
n
-1, 1 :
nrhs
) (for real flavors);
A
(1 :
n
,
ja
:
ja
+
n
-1)
H
*
X
=
B
(
ib
:
ib
+
n
-1, 1 :
nrhs
) (for complex flavors),
where
A
(1 :
n
,
ja
:
ja
+
n
-1)
is a banded triangular matrix factor produced by the Gaussian elimination code of
p?dbtrf
and is stored in
A
(1 :
n
,
ja
:
ja
+
n
-1)
and
af
. The matrix stored in
A
(1 :
n
,
ja
:
ja
+
n
-1)
is either upper or lower triangular according to
uplo
, and the choice of solving
A
(1 :
n
,
ja
:
ja
+
n
-1)
or
A
(1 :
n
,
ja
:
ja
+
n
-1)
T
is dictated by the user by the parameter
trans
.
The function
p?dbtrf
must be called first.
Input Parameters
uplo
(global)
If
uplo
=
'U'
, the upper triangle of
A
(1:
n
,
ja
:
ja
+
n
-1)
is stored,
if
uplo
=
'L'
, the lower triangle of
A
(1:
n
,
ja
:
ja
+
n
-1)
is stored.
trans
(global)
If
trans
=
'N'
, solve with
A
(1:
n
,
ja
:
ja
+
n
-1)
,
if
trans
=
'C'
, solve with conjugate transpose
A
(1:
n
,
ja
:
ja
+
n
-1)
.
n
(global) The order of the distributed submatrix
A
;(
n
0).
bwl
(global) Number of subdiagonals. 0 ≤
bwl
n
-1.
bwu
(global) Number of subdiagonals. 0 ≤
bwu
n
-1.
nrhs
(global) The number of right-hand sides; the number of columns of the distributed submatrix
B
(
nrhs
0).
a
(local).
Pointer into the local memory to an array of size
lld_a
*
LOCc
(
ja
+
n
-1)
, where
lld_a
(
bwl
+
bwu
+1). On entry, this array contains the local pieces of the
n
-by-
n
unsymmetric banded distributed Cholesky factor
L
or
L
T
, represented in global
A
as
A
(1 :
n
,
ja
:
ja
+
n
-1)
. This local portion is stored in the packed banded format used in LAPACK.
See the
Application Notes
below and the ScaLAPACK manual for more detail on the format of distributed matrices.
ja
(global) The index in the global matrix
A
that points to 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
_.
if 1
d
type (
dtype_a
= 501 or 502),
dlen
7;
if 2
d
type (
dtype_a
= 1),
dlen
9. The array descriptor for the distributed matrix
A
. Contains information of mapping of
A
to memory.
b
(local)
Pointer into the local memory to an array of local lead dimension
lld_b
nb
. On entry, this array contains the local pieces of the right-hand sides
B
(
ib
:
ib
+
n
-1, 1:
nrhs
)
.
ib
(global) The row index in the global matrix
B
that points to the first row of the matrix to be operated on (which may be either all of
B
or a submatrix of
B
).
descb
(global and local) array of size
dlen_
.
if
1
d
type (
dtype_b
=502)
,
dlen
7;
if
2
d
type
(
dtype_b
=1)
,
dlen
9
. The array descriptor for the distributed matrix
B
. Contains information of mapping
B
to memory.
laf
(local)
Size of user-input auxiliary fill-in space
af
.
laf
nb
*(
bwl
+
bwu
)+6*max(
bwl
,
bwu
)*max(
bwl
,
bwu
)
. If
laf
is not large enough, an error code is returned and the minimum acceptable size will be returned in
af
[0]
.
work
(local).
Temporary workspace. This space may be overwritten in between
function calls
.
work
must be the size given in
lwork
.
lwork
(local or global)
Size of user-input workspace
work
. If
lwork
is too small, the minimal acceptable size will be returned in
work
[0]
and an error code is returned.
lwork
max(
bwl
,
bwu
)*
nrhs
.
Output Parameters
a
(local).
This local portion is stored in the packed banded format used in LAPACK. Please see the ScaLAPACK manual for more detail on the format of distributed matrices.
b
On exit, this contains the local piece of the solutions distributed matrix
X
.
af
(local).
auxiliary fill-in space. The fill-in space is created in a call to the factorization
function
p?dbtrf
and is stored in
af
. If a linear system is to be solved using
p?dbtrf
after the factorization
function
,
af
must not be altered after the factorization.
work
On exit,
work
[0]
contains the minimal
lwork
.
info
(local).
If
info
= 0, the execution is successful.
< 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
.

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