Developer Reference

Contents

p?dbsv

Solves a general band system of linear equations.

Syntax

void
psdbsv
(
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
*work
,
MKL_INT
*lwork
,
MKL_INT
*info
);
void
pddbsv
(
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
*work
,
MKL_INT
*lwork
,
MKL_INT
*info
);
void
pcdbsv
(
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
*work
,
MKL_INT
*lwork
,
MKL_INT
*info
);
void
pzdbsv
(
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
*work
,
MKL_INT
*lwork
,
MKL_INT
*info
);
Include Files
  • mkl_scalapack.h
Description
The
p?dbsv
function
solves the following system of linear equations:
A
(1:
n
,
ja
:
ja
+
n
-1)*
X
=
B
(
ib
:
ib
+
n
-1, 1:
nrhs
)
,
where
A
(1:
n
,
ja
:
ja
+
n
-1)
is an
n
-by-
n
real/complex banded diagonally dominant-like distributed matrix with bandwidth
bwl
,
bwu
.
Gaussian elimination without pivoting is used to factor a reordering of the matrix into
LU
.
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 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 with leading size
lld_a
≥ (
bwl
+
bwu
+1)
(stored in
desca
). On entry, this array contains the local pieces of the distributed matrix.
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
.
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 size
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
indicating 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 of
B
to memory.
work
(local).
Temporary workspace. This space may be overwritten in between calls to
functions
.
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
nb
(
bwl
+
bwu
)+6
max
(
bwl
,
bwu
)*max(
bwl
,
bwu
)+max((max(
bwl
,
bwu
)
nrhs
), max(
bwl
,
bwu
)*max(
bwl
,
bwu
))
Output Parameters
a
On exit, this array contains information containing details of the factorization.
Note that permutations are performed on the matrix, so that the factors returned are different from those returned by LAPACK.
b
On exit, this contains the local piece of the solutions distributed matrix
X
.
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
-entry 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
.
> 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 positive definite, 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.