Contents

p?gbtrs

Solves a system of distributed linear equations with a general band matrix, using the
LU
factorization computed by
p?gbtrf
.

Syntax

void
psgbtrs
(
char
*trans
,
MKL_INT
*n
,
MKL_INT
*bwl
,
MKL_INT
*bwu
,
MKL_INT
*nrhs
,
float
*a
,
MKL_INT
*ja
,
MKL_INT
*desca
,
MKL_INT
*ipiv
,
float
*b
,
MKL_INT
*ib
,
MKL_INT
*descb
,
float
*af
,
MKL_INT
*laf
,
float
*work
,
MKL_INT
*lwork
,
MKL_INT
*info
);
void
pdgbtrs
(
char
*trans
,
MKL_INT
*n
,
MKL_INT
*bwl
,
MKL_INT
*bwu
,
MKL_INT
*nrhs
,
double
*a
,
MKL_INT
*ja
,
MKL_INT
*desca
,
MKL_INT
*ipiv
,
double
*b
,
MKL_INT
*ib
,
MKL_INT
*descb
,
double
*af
,
MKL_INT
*laf
,
double
*work
,
MKL_INT
*lwork
,
MKL_INT
*info
);
void
pcgbtrs
(
char
*trans
,
MKL_INT
*n
,
MKL_INT
*bwl
,
MKL_INT
*bwu
,
MKL_INT
*nrhs
,
MKL_Complex8
*a
,
MKL_INT
*ja
,
MKL_INT
*desca
,
MKL_INT
*ipiv
,
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
pzgbtrs
(
char
*trans
,
MKL_INT
*n
,
MKL_INT
*bwl
,
MKL_INT
*bwu
,
MKL_INT
*nrhs
,
MKL_Complex16
*a
,
MKL_INT
*ja
,
MKL_INT
*desca
,
MKL_INT
*ipiv
,
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?gbtrs
function
solves a system of distributed linear equations with a general band distributed matrix sub(
A
) =
A
(1:
n
,
ja
:
ja
+
n
-1) using the
LU
factorization computed by p?gbtrf.
The system has one of the following forms specified by
trans
:
sub(
A
)*
X
= sub(
B
) (no transpose),
sub(
A
)
T
*X = sub(
B
) (transpose),
sub(
A
)
H
*
X
= sub(
B
) (conjugate transpose),
where sub(
B
) =
B
(
ib
:
ib
+
n
-1, 1:
nrhs
).
Before calling this
function
,you must call
p?gbtrf
to compute the
LU
factorization of sub(
A
).
Input Parameters
trans
(global) Must be
'N'
or
'T'
or
'C'
.
Indicates the form of the equations:
If
trans
=
'N'
, then sub(
A
)*
X
= sub(
B
) is solved for
X
.
If
trans
=
'T'
, then sub(
A
)
T
*
X
= sub(
B
) is solved for
X
.
If
trans
=
'C'
, then sub(
A
)
H
*
X
= sub(
B
) is solved for
X
.
n
(global) The number of linear equations; the order of the distributed matrix sub(
A
)
(
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
)
.
nrhs
(global) The number of right hand sides; the number of columns of the distributed matrix sub(
B
)
(
nrhs
0)
.
a
,
b
(local)
Pointers into the local memory to arrays of local sizes
lld_a
*
LOCc
(
ja
+
n
-1)
and
lld_b
*
LOCc
(
nrhs
)
, respectively.
The array
a
contains details of the
LU
factorization of the distributed band matrix
A
.
On entry, the array
b
contains the local pieces of the right hand sides
B
(
ib
:
ib
+
n
-1, 1:
nrhs
).
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
.
ib
(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
).
descb
(global and local) array of size
dlen_
. The array descriptor for the distributed matrix
A
.
If
dtype_b
= 502
, then
dlen_
7
;
else if
dtype_b
= 1
, then
dlen_
9
.
laf
(local) The size of the array
af
.
Must be
laf
nb_a
*(
bwl
+
bwu
)+6*(
bwl
+
bwu
)*(
bwl
+2*
bwu
).
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) Same type as
a
. Workspace array of size
lwork
.
lwork
(local or global) The size of the
work
array, must be at least
lwork
nrhs
*(
nb_a
+2
*bwl
+4
*bwu
)
.
Output Parameters
ipiv
(local) array.
The size of
ipiv
must be
nb_a
.
Contains pivot indices for local factorizations. Note that you should not alter the contents of this array between factorization and solve.
b
On exit, overwritten by the local pieces of the solution distributed matrix
X
.
af
(local)
Array of size
laf
.
Auxiliary Fill-in space. The fill-in space is created in a call to the factorization
function
p?gbtrf
and is stored in
af
.
Note that if a linear system is to be solved using p?gbtrs 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
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
.

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