Developer Reference

  • 2020.2
  • 07/15/2020
  • Public Content
Contents

?hesv_rook

Computes the solution to the system of linear equations for Hermitian matrices using the bounded Bunch-Kaufman diagonal pivoting method.

Syntax

call chesv_rook
(
uplo
,
n
,
nrhs
,
a
,
lda
,
ipiv
,
b
,
ldb
,
work
,
lwork
,
info
)
call zhesv_rook
(
uplo
,
n
,
nrhs
,
a
,
lda
,
ipiv
,
b
,
ldb
,
work
,
lwork
,
info
)
call hesv_rook
(
a
,
b
[
,
uplo
]
[
,
ipiv
]
[
,
info
]
)
Include Files
  • mkl.fi
    ,
    lapack.f90
Description
The routine solves for
X
the complex system of linear equations
A*X
=
B
, where
A
is an
n
-by-
n
Hermitian matrix, and
X
and
B
are
n
-by-
nrhs
matrices.
The bounded Bunch-Kaufman ("rook") diagonal pivoting method is used to factor
A
as
A
=
U
*
D
*
U
H
if
uplo
=
'U'
, or
A
=
L
*
D
*
L
H
if
uplo
=
'L'
,
where
U
(or
L
) is a product of permutation and unit upper (lower) triangular matrices, and
D
is Hermitian and block diagonal with 1-by-1 and 2-by-2 diagonal blocks.
hetrf_rook is called to compute the factorization of a complex Hermition matrix
A
using the bounded Bunch-Kaufman ("rook") diagonal pivoting method.
The factored form of
A
is then used to solve the system of equations
A
*
X
=
B
by calling ?HETRS_ROOK, which uses BLAS level 2 routines.
Input Parameters
uplo
CHARACTER*1
.
Must be
'U'
or
'L'
.
Indicates whether the upper or lower triangular part of
A
is stored:
If
uplo
=
'U'
, the array
a
stores the upper triangular part of the matrix
A
.
If
uplo
=
'L'
, the array
a
stores the lower triangular part of the matrix
A
.
n
INTEGER
.
The number of linear equations, which is the order of matrix
A
;
n
0.
nrhs
INTEGER
.
The number of right-hand sides, the number of columns in
B
;
nrhs
0
.
a
,
b
,
work
COMPLEX
for
chesv_rook
COMPLEX*16
for
zhesv_rook
.
Arrays:
a
(size
lda
by *)
,
b
(size
ldb
by *)
,
work
(*)
.
The array
a
contains the Hermitian matrix
A
. If
uplo
=
'U'
, the leading
n
-by-
n
upper triangular part of
a
contains the upper triangular part of the matrix
A
, and the strictly lower triangular part of
a
is not referenced. If
uplo
= 'L', the leading
n
-by-
n
lower triangular part of
a
contains the lower triangular part of the matrix
A
, and the strictly upper triangular part of
a
is not referenced.
The second dimension of
a
must be at least max(1,
n
).
The array
b
contains the
n
-by-
nrhs
right hand side matrix
B
.
The second dimension of
b
must be at least
max(1,
nrhs
)
.
work
is a workspace array, dimension at least
max(1,
lwork
)
.
lda