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.
The routine uses the diagonal pivoting factorization to compute the solution to a complex system of linear equations
nHermitian matrix, the columns of matrix
Bare individual right-hand sides, and the columns of
Xare the corresponding solutions.
Error bounds on the solution and a condition estimate are also provided.
?hesvxperforms the following steps:
- If, the diagonal pivoting method is used to factor the matrixfact='N'A. The form of the factorization isorA=U*D*UHA =, whereL*D*LHU(orL) is a product of permutation and unit upper (lower) triangular matrices, andDis Hermitian and block diagonal with 1-by-1 and 2-by-2 diagonal blocks.
- If some= 0, so thatdi,iDis exactly singular, then the routine returns with. Otherwise, the factored form ofinfo=iAis used to estimate the condition number of the matrixA. If the reciprocal of the condition number is less than machine precision,is returned as a warning, but the routine still goes on to solve forinfo=n+1Xand compute error bounds as described below.
- The system of equations is solved forXusing the factored form ofA.
- Iterative refinement is applied to improve the computed solution matrix and calculate error bounds and backward error estimates for it.
- Must beCHARACTER*1.'F'or'N'.Specifies whether or not the factored form of the matrixAhas been supplied on entry.If: on entry,fact='F'afandipivcontain the factored form ofA. Arraysa,af, andipivare not modified.If, the matrixfact='N'Ais copied toafand factored.
- Must beCHARACTER*1.'U'or'L'.Indicates whether the upper or lower triangular part ofAis stored and howAis factored:If, the arrayuplo='U'astores the upper triangular part of the Hermitian matrixA, and