1ZHETD2(1)                LAPACK routine (version 3.1)                ZHETD2(1)
2
3
4

NAME

6       ZHETD2  -  a  complex  Hermitian matrix A to real symmetric tridiagonal
7       form T by a unitary similarity transformation
8

SYNOPSIS

10       SUBROUTINE ZHETD2( UPLO, N, A, LDA, D, E, TAU, INFO )
11
12           CHARACTER      UPLO
13
14           INTEGER        INFO, LDA, N
15
16           DOUBLE         PRECISION D( * ), E( * )
17
18           COMPLEX*16     A( LDA, * ), TAU( * )
19

PURPOSE

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

ARGUMENTS

26       UPLO    (input) CHARACTER*1
27               Specifies  whether  the  upper  or lower triangular part of the
28               Hermitian matrix A is stored:
29               = 'U':  Upper triangular
30               = 'L':  Lower triangular
31
32       N       (input) INTEGER
33               The order of the matrix A.  N >= 0.
34
35       A       (input/output) COMPLEX*16 array, dimension (LDA,N)
36               On entry, the Hermitian matrix A.  If UPLO = 'U',  the  leading
37               n-by-n upper triangular part of A contains the upper triangular
38               part of the matrix A, and the strictly lower triangular part of
39               A  is  not referenced.  If UPLO = 'L', the leading n-by-n lower
40               triangular part of A contains the lower triangular part of  the
41               matrix  A,  and  the strictly upper triangular part of A is not
42               referenced.  On exit, if UPLO = 'U',  the  diagonal  and  first
43               superdiagonal  of  A  are overwritten by the corresponding ele‐
44               ments of the tridiagonal matrix T, and the elements  above  the
45               first  superdiagonal, with the array TAU, represent the unitary
46               matrix Q as a product of elementary reflectors; if UPLO =  'L',
47               the  diagonal  and  first subdiagonal of A are over- written by
48               the corresponding elements of the tridiagonal matrix T, and the
49               elements  below the first subdiagonal, with the array TAU, rep‐
50               resent the unitary matrix Q as a product of elementary  reflec‐
51               tors. See Further Details.  LDA     (input) INTEGER The leading
52               dimension of the array A.  LDA >= max(1,N).
53
54       D       (output) DOUBLE PRECISION array, dimension (N)
55               The diagonal elements of  the  tridiagonal  matrix  T:  D(i)  =
56               A(i,i).
57
58       E       (output) DOUBLE PRECISION array, dimension (N-1)
59               The  off-diagonal  elements of the tridiagonal matrix T: E(i) =
60               A(i,i+1) if UPLO = 'U', E(i) = A(i+1,i) if UPLO = 'L'.
61
62       TAU     (output) COMPLEX*16 array, dimension (N-1)
63               The scalar factors of the elementary  reflectors  (see  Further
64               Details).
65
66       INFO    (output) INTEGER
67               = 0:  successful exit
68               < 0:  if INFO = -i, the i-th argument had an illegal value.
69

FURTHER DETAILS

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