## Developer Reference

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

# ?hesvx

Uses the diagonal pivoting factorization to compute the solution to the complex system of linear equations with a Hermitian coefficient matrix A, and provides error bounds on the solution.

## Syntax

Include Files
• mkl.fi
,
lapack.f90
Description
The routine uses the diagonal pivoting factorization to compute the solution to a complex system of linear equations
A*X
=
B
, where
A
is an
n
-by-
n
Hermitian matrix, the columns of matrix
B
are individual right-hand sides, and the columns of
X
are the corresponding solutions.
Error bounds on the solution and a condition estimate are also provided.
The routine
?hesvx
performs the following steps:
1. If
fact
=
'N'
, the diagonal pivoting method is used to factor the matrix
A
. The form of the factorization is
A
=
U*D*U
H
or
A =
L*D*L
H
, 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.
2. If some
d
i
,
i
= 0, so that
D
is exactly singular, then the routine returns with
info
=
i
. Otherwise, the factored form of
A
is used to estimate the condition number of the matrix
A
. If the reciprocal of the condition number is less than machine precision,
info
=
n
+1
is returned as a warning, but the routine still goes on to solve for
X
and compute error bounds as described below.
3. The system of equations is solved for
X
using the factored form of
A
.
4. Iterative refinement is applied to improve the computed solution matrix and calculate error bounds and backward error estimates for it.
Input Parameters
fact
CHARACTER*1
.
Must be
'F'
or
'N'
.
Specifies whether or not the factored form of the matrix
A
has been supplied on entry.
If
fact
=
'F'
: on entry,
af
and
ipiv
contain the factored form of
A
. Arrays
a
,
af
, and
ipiv
are not modified.
If
fact
=
'N'
, the matrix
A
is copied to
af
and factored.
uplo
CHARACTER*1
.
Must be
'U'
or
'L'
.
Indicates whether the upper or lower triangular part of
A
is stored and how
A
is factored:
If
uplo
=
'U'
, the array
a
stores the upper triangular part of the Hermitian matrix
A
, and