NAME

zhesv - compute the solution to a complex system of linear equations A * X = B,


SYNOPSIS

  SUBROUTINE ZHESV( UPLO, N, NRHS, A, LDA, IPIVOT, B, LDB, WORK, 
 *      LDWORK, INFO)
  CHARACTER * 1 UPLO
  DOUBLE COMPLEX A(LDA,*), B(LDB,*), WORK(*)
  INTEGER N, NRHS, LDA, LDB, LDWORK, INFO
  INTEGER IPIVOT(*)
  SUBROUTINE ZHESV_64( UPLO, N, NRHS, A, LDA, IPIVOT, B, LDB, WORK, 
 *      LDWORK, INFO)
  CHARACTER * 1 UPLO
  DOUBLE COMPLEX A(LDA,*), B(LDB,*), WORK(*)
  INTEGER*8 N, NRHS, LDA, LDB, LDWORK, INFO
  INTEGER*8 IPIVOT(*)

F95 INTERFACE

  SUBROUTINE HESV( UPLO, [N], [NRHS], A, [LDA], IPIVOT, B, [LDB], 
 *       [WORK], [LDWORK], [INFO])
  CHARACTER(LEN=1) :: UPLO
  COMPLEX(8), DIMENSION(:) :: WORK
  COMPLEX(8), DIMENSION(:,:) :: A, B
  INTEGER :: N, NRHS, LDA, LDB, LDWORK, INFO
  INTEGER, DIMENSION(:) :: IPIVOT
  SUBROUTINE HESV_64( UPLO, [N], [NRHS], A, [LDA], IPIVOT, B, [LDB], 
 *       [WORK], [LDWORK], [INFO])
  CHARACTER(LEN=1) :: UPLO
  COMPLEX(8), DIMENSION(:) :: WORK
  COMPLEX(8), DIMENSION(:,:) :: A, B
  INTEGER(8) :: N, NRHS, LDA, LDB, LDWORK, INFO
  INTEGER(8), DIMENSION(:) :: IPIVOT

C INTERFACE

#include <sunperf.h>

void zhesv(char uplo, int n, int nrhs, doublecomplex *a, int lda, int *ipivot, doublecomplex *b, int ldb, int *info);

void zhesv_64(char uplo, long n, long nrhs, doublecomplex *a, long lda, long *ipivot, doublecomplex *b, long ldb, long *info);


PURPOSE

zhesv computes the solution to a 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 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. The factored form of A is then used to solve the system of equations A * X = B.


ARGUMENTS