1CLATRD(1)           LAPACK auxiliary routine (version 3.1)           CLATRD(1)
2
3
4

NAME

6       CLATRD - NB rows and columns of a complex Hermitian matrix A to Hermit‐
7       ian tridiagonal form by a unitary similarity transformation Q' * A * Q,
8       and  returns  the matrices V and W which are needed to apply the trans‐
9       formation to the unreduced part of A
10

SYNOPSIS

12       SUBROUTINE CLATRD( UPLO, N, NB, A, LDA, E, TAU, W, LDW )
13
14           CHARACTER      UPLO
15
16           INTEGER        LDA, LDW, N, NB
17
18           REAL           E( * )
19
20           COMPLEX        A( LDA, * ), TAU( * ), W( LDW, * )
21

PURPOSE

23       CLATRD reduces NB rows and columns of a complex Hermitian matrix  A  to
24       Hermitian  tridiagonal form by a unitary similarity transformation Q' *
25       A * Q, and returns the matrices V and W which are needed to  apply  the
26       transformation to the unreduced part of A.
27
28       If UPLO = 'U', CLATRD reduces the last NB rows and columns of a matrix,
29       of which the upper triangle is supplied;
30       if UPLO = 'L', CLATRD reduces the  first  NB  rows  and  columns  of  a
31       matrix, of which the lower triangle is supplied.
32
33       This is an auxiliary routine called by CHETRD.
34
35

ARGUMENTS

37       UPLO    (input) CHARACTER*1
38               Specifies  whether  the  upper  or lower triangular part of the
39               Hermitian matrix A is stored:
40               = 'U': Upper triangular
41               = 'L': Lower triangular
42
43       N       (input) INTEGER
44               The order of the matrix A.
45
46       NB      (input) INTEGER
47               The number of rows and columns to be reduced.
48
49       A       (input/output) COMPLEX array, dimension (LDA,N)
50               On entry, the Hermitian matrix A.  If UPLO = 'U',  the  leading
51               n-by-n upper triangular part of A contains the upper triangular
52               part of the matrix A, and the strictly lower triangular part of
53               A  is  not referenced.  If UPLO = 'L', the leading n-by-n lower
54               triangular part of A contains the lower triangular part of  the
55               matrix  A,  and  the strictly upper triangular part of A is not
56               referenced.  On exit: if UPLO = 'U', the last NB  columns  have
57               been  reduced  to  tridiagonal form, with the diagonal elements
58               overwriting the diagonal elements of A; the elements above  the
59               diagonal  with the array TAU, represent the unitary matrix Q as
60               a product of elementary reflectors; if UPLO = 'L', the first NB
61               columns  have been reduced to tridiagonal form, with the diago‐
62               nal elements overwriting the diagonal elements of A;  the  ele‐
63               ments  below  the  diagonal  with  the array TAU, represent the
64               unitary matrix Q as a product of  elementary  reflectors.   See
65               Further Details.  LDA     (input) INTEGER The leading dimension
66               of the array A.  LDA >= max(1,N).
67
68       E       (output) REAL array, dimension (N-1)
69               If UPLO = 'U', E(n-nb:n-1) contains the superdiagonal  elements
70               of  the  last  NB columns of the reduced matrix; if UPLO = 'L',
71               E(1:nb) contains the subdiagonal elements of the first NB  col‐
72               umns of the reduced matrix.
73
74       TAU     (output) COMPLEX array, dimension (N-1)
75               The  scalar  factors  of  the  elementary reflectors, stored in
76               TAU(n-nb:n-1) if UPLO = 'U', and in TAU(1:nb) if  UPLO  =  'L'.
77               See Further Details.  W       (output) COMPLEX array, dimension
78               (LDW,NB) The n-by-nb matrix W required to update the  unreduced
79               part of A.
80
81       LDW     (input) INTEGER
82               The leading dimension of the array W. LDW >= max(1,N).
83

FURTHER DETAILS

85       If  UPLO  = 'U', the matrix Q is represented as a product of elementary
86       reflectors
87
88          Q = H(n) H(n-1) . . . H(n-nb+1).
89
90       Each H(i) has the form
91
92          H(i) = I - tau * v * v'
93
94       where tau is a complex scalar, and v is a complex vector with v(i:n)  =
95       0  and v(i-1) = 1; v(1:i-1) is stored on exit in A(1:i-1,i), and tau in
96       TAU(i-1).
97
98       If UPLO = 'L', the matrix Q is represented as a product  of  elementary
99       reflectors
100
101          Q = H(1) H(2) . . . H(nb).
102
103       Each H(i) has the form
104
105          H(i) = I - tau * v * v'
106
107       where  tau is a complex scalar, and v is a complex vector with v(1:i) =
108       0 and v(i+1) = 1; v(i+1:n) is stored on exit in A(i+1:n,i), and tau  in
109       TAU(i).
110
111       The  elements of the vectors v together form the n-by-nb matrix V which
112       is needed, with W, to apply the transformation to the unreduced part of
113       the matrix, using a Hermitian rank-2k update of the form: A := A - V*W'
114       - W*V'.
115
116       The contents of A on exit are illustrated  by  the  following  examples
117       with n = 5 and nb = 2:
118
119       if UPLO = 'U':                       if UPLO = 'L':
120
121         (  a   a   a   v4  v5 )              (  d                  )
122         (      a   a   v4  v5 )              (  1   d              )
123         (          a   1   v5 )              (  v1  1   a          )
124         (              d   1  )              (  v1  v2  a   a      )
125         (                  d  )              (  v1  v2  a   a   a  )
126
127       where  d denotes a diagonal element of the reduced matrix, a denotes an
128       element of the original matrix that is unchanged,  and  vi  denotes  an
129       element of the vector defining H(i).
130
131
132
133
134 LAPACK auxiliary routine (versionNo3v.e1m)ber 2006                       CLATRD(1)
Impressum