CHETRD(l)		LAPACK routine (version	1.1)		    CHETRD(l)

NAME
  CHETRD - reduce a complex Hermitian matrix A to real symmetric tridiagonal
  form T by a unitary similarity transformation

SYNOPSIS

  SUBROUTINE CHETRD( UPLO, N, A, LDA, D, E, TAU, WORK, LWORK, INFO )

      CHARACTER	     UPLO

      INTEGER	     INFO, LDA,	LWORK, N

      REAL	     D(	* ), E(	* )

      COMPLEX	     A(	LDA, * ), TAU( * ), WORK( * )

PURPOSE
  CHETRD reduces a complex Hermitian matrix A to real symmetric	tridiagonal
  form T by a unitary similarity transformation: Q**H *	A * Q =	T.

ARGUMENTS

  UPLO	  (input) CHARACTER*1
	  = 'U':  Upper	triangle of A is stored;
	  = 'L':  Lower	triangle of A is stored.

  N	  (input) INTEGER
	  The order of the matrix A.  N	>= 0.

  A	  (input/output) COMPLEX array,	dimension (LDA,N)
	  On entry, 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.  On
	  exit,	if UPLO	= 'U', the diagonal and	first superdiagonal of A are
	  overwritten by the corresponding elements of the tridiagonal matrix
	  T, and the elements above the	first superdiagonal, with the array
	  TAU, represent the unitary matrix Q as a product of elementary
	  reflectors; if UPLO =	'L', the diagonal and first subdiagonal	of A
	  are over- written by the corresponding elements of the tridiagonal
	  matrix T, and	the elements below the first subdiagonal, with the
	  array	TAU, represent the unitary matrix Q as a product of elemen-
	  tary reflectors. See Further Details.	 LDA	 (input) INTEGER The
	  leading dimension of the array A.  LDA >= max(1,N).

  D	  (output) REAL	array, dimension (N)
	  The diagonal elements	of the tridiagonal matrix T: D(i) = A(i,i).

  E	  (output) REAL	array, dimension (N-1)
	  The off-diagonal elements of the tridiagonal matrix T: E(i) =
	  A(i,i+1) if UPLO = 'U', E(i) = A(i+1,i) if UPLO = 'L'.

  TAU	  (output) COMPLEX array, dimension (N-1)
	  The scalar factors of	the elementary reflectors (see Further
	  Details).

  WORK	  (workspace) COMPLEX array, dimension (LWORK)
	  On exit, if INFO = 0,	WORK(1)	returns	the optimal LWORK.

  LWORK	  (input) INTEGER
	  The dimension	of the array WORK.  LWORK >= 1.	 For optimum perfor-
	  mance	LWORK >= N*NB, where NB	is the optimal blocksize.

  INFO	  (output) INTEGER
	  = 0:	successful exit
	  < 0:	if INFO	= -i, the i-th argument	had an illegal value

FURTHER	DETAILS
  If UPLO = 'U', the matrix Q is represented as	a product of elementary
  reflectors

     Q = H(n-1)	. . . H(2) H(1).

  Each H(i) has	the form

     H(i) = I -	tau * v	* v'

  where	tau is a complex scalar, and v is a complex vector with	v(i+1:n) = 0
  and v(i) = 1;	v(1:i-1) is stored on exit in
  A(1:i-1,i+1),	and tau	in TAU(i).

  If UPLO = 'L', the matrix Q is represented as	a product of elementary
  reflectors

     Q = H(1) H(2) . . . H(n-1).

  Each H(i) has	the form

     H(i) = I -	tau * v	* v'

  where	tau is a complex scalar, and v is a complex vector with	v(1:i) = 0
  and v(i+1) = 1; v(i+2:n) is stored on	exit in	A(i+2:n,i), and	tau in
  TAU(i).

  The contents of A on exit are	illustrated by the following examples with n
  = 5:

  if UPLO = 'U':		       if UPLO = 'L':

    (  d   e   v2  v3  v4 )		 (  d		       )
    (	   d   e   v3  v4 )		 (  e	d	       )
    (	       d   e   v4 )		 (  v1	e   d	       )
    (		   d   e  )		 (  v1	v2  e	d      )
    (		       d  )		 (  v1	v2  v3	e   d  )

  where	d and e	denote diagonal	and off-diagonal elements of T,	and vi
  denotes an element of	the vector defining H(i).


Back to the listing of computational routines for eigenvalue problems