1CHETRD(1)                LAPACK routine (version 3.2)                CHETRD(1)
2
3
4

NAME

6       CHETRD  - reduces a complex Hermitian matrix A to real symmetric tridi‐
7       agonal form T by a unitary similarity transformation
8

SYNOPSIS

10       SUBROUTINE CHETRD( UPLO, N, A, LDA, D, E, TAU, WORK, LWORK, INFO )
11
12           CHARACTER      UPLO
13
14           INTEGER        INFO, LDA, LWORK, N
15
16           REAL           D( * ), E( * )
17
18           COMPLEX        A( LDA, * ), TAU( * ), WORK( * )
19

PURPOSE

21       CHETRD reduces a complex Hermitian matrix A to real symmetric tridiago‐
22       nal form T by a unitary similarity transformation: Q**H * A * Q = T.
23

ARGUMENTS

25       UPLO    (input) CHARACTER*1
26               = 'U':  Upper triangle of A is stored;
27               = 'L':  Lower triangle of A is stored.
28
29       N       (input) INTEGER
30               The order of the matrix A.  N >= 0.
31
32       A       (input/output) COMPLEX array, dimension (LDA,N)
33               On  entry,  the Hermitian matrix A.  If UPLO = 'U', the leading
34               N-by-N upper triangular part of A contains the upper triangular
35               part of the matrix A, and the strictly lower triangular part of
36               A is not referenced.  If UPLO = 'L', the leading  N-by-N  lower
37               triangular  part of A contains the lower triangular part of the
38               matrix A, and the strictly upper triangular part of  A  is  not
39               referenced.   On  exit,  if  UPLO = 'U', the diagonal and first
40               superdiagonal of A are overwritten by  the  corresponding  ele‐
41               ments  of  the tridiagonal matrix T, and the elements above the
42               first superdiagonal, with the array TAU, represent the  unitary
43               matrix  Q as a product of elementary reflectors; if UPLO = 'L',
44               the diagonal and first subdiagonal of A are  over-  written  by
45               the corresponding elements of the tridiagonal matrix T, and the
46               elements below the first subdiagonal, with the array TAU,  rep‐
47               resent  the unitary matrix Q as a product of elementary reflec‐
48               tors. See Further Details.  LDA     (input) INTEGER The leading
49               dimension of the array A.  LDA >= max(1,N).
50
51       D       (output) REAL array, dimension (N)
52               The  diagonal  elements  of  the  tridiagonal  matrix T: D(i) =
53               A(i,i).
54
55       E       (output) REAL array, dimension (N-1)
56               The off-diagonal elements of the tridiagonal matrix T:  E(i)  =
57               A(i,i+1) if UPLO = 'U', E(i) = A(i+1,i) if UPLO = 'L'.
58
59       TAU     (output) COMPLEX array, dimension (N-1)
60               The  scalar  factors  of the elementary reflectors (see Further
61               Details).
62
63       WORK    (workspace/output) COMPLEX array, dimension (MAX(1,LWORK))
64               On exit, if INFO = 0, WORK(1) returns the optimal LWORK.
65
66       LWORK   (input) INTEGER
67               The dimension of the array WORK.  LWORK >= 1.  For optimum per‐
68               formance  LWORK >= N*NB, where NB is the optimal blocksize.  If
69               LWORK = -1, then a workspace query is assumed; the routine only
70               calculates  the  optimal  size  of the WORK array, returns this
71               value as the first entry of the WORK array, and no  error  mes‐
72               sage related to LWORK is issued by XERBLA.
73
74       INFO    (output) INTEGER
75               = 0:  successful exit
76               < 0:  if INFO = -i, the i-th argument had an illegal value
77

FURTHER DETAILS

79       If  UPLO  = 'U', the matrix Q is represented as a product of elementary
80       reflectors
81          Q = H(n-1) . . . H(2) H(1).
82       Each H(i) has the form
83          H(i) = I - tau * v * v'
84       where tau is a complex scalar, and v is a complex vector with  v(i+1:n)
85       = 0 and v(i) = 1; v(1:i-1) is stored on exit in
86       A(1:i-1,i+1), and tau in TAU(i).
87       If  UPLO  = 'L', the matrix Q is represented as a product of elementary
88       reflectors
89          Q = H(1) H(2) . . . H(n-1).
90       Each H(i) has the form
91          H(i) = I - tau * v * v'
92       where tau is a complex scalar, and v is a complex vector with v(1:i)  =
93       0  and v(i+1) = 1; v(i+2:n) is stored on exit in A(i+2:n,i), and tau in
94       TAU(i).
95       The contents of A on exit are illustrated  by  the  following  examples
96       with n = 5:
97       if UPLO = 'U':                       if UPLO = 'L':
98         (  d   e   v2  v3  v4 )              (  d                  )
99         (      d   e   v3  v4 )              (  e   d              )
100         (          d   e   v4 )              (  v1  e   d          )
101         (              d   e  )              (  v1  v2  e   d      )
102         (                   d  )              (  v1  v2  v3  e   d  ) where d
103       and e denote diagonal and off-diagonal elements of T, and vi denotes an
104       element of the vector defining H(i).
105
106
107
108 LAPACK routine (version 3.2)    November 2008                       CHETRD(1)
Impressum