1CLATRD(1) LAPACK auxiliary routine (version 3.2) CLATRD(1)
2
3
4
6 CLATRD - reduces NB rows and columns of a complex Hermitian matrix A to
7 Hermitian tridiagonal form by a unitary similarity transformation Q' *
8 A * Q, and returns the matrices V and W which are needed to apply the
9 transformation to the unreduced part of A
10
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
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. If UPLO = 'U', CLATRD
27 reduces the last NB rows and columns of a matrix, of which the upper
28 triangle is supplied;
29 if UPLO = 'L', CLATRD reduces the first NB rows and columns of a
30 matrix, of which the lower triangle is supplied.
31 This is an auxiliary routine called by CHETRD.
32
34 UPLO (input) CHARACTER*1
35 Specifies whether the upper or lower triangular part of the
36 Hermitian matrix A is stored:
37 = 'U': Upper triangular
38 = 'L': Lower triangular
39
40 N (input) INTEGER
41 The order of the matrix A.
42
43 NB (input) INTEGER
44 The number of rows and columns to be reduced.
45
46 A (input/output) COMPLEX array, dimension (LDA,N)
47 On entry, the Hermitian matrix A. If UPLO = 'U', the leading
48 n-by-n upper triangular part of A contains the upper triangular
49 part of the matrix A, and the strictly lower triangular part of
50 A is not referenced. If UPLO = 'L', the leading n-by-n lower
51 triangular part of A contains the lower triangular part of the
52 matrix A, and the strictly upper triangular part of A is not
53 referenced. On exit: if UPLO = 'U', the last NB columns have
54 been reduced to tridiagonal form, with the diagonal elements
55 overwriting the diagonal elements of A; the elements above the
56 diagonal with the array TAU, represent the unitary matrix Q as
57 a product of elementary reflectors; if UPLO = 'L', the first NB
58 columns have been reduced to tridiagonal form, with the diago‐
59 nal elements overwriting the diagonal elements of A; the ele‐
60 ments below the diagonal with the array TAU, represent the
61 unitary matrix Q as a product of elementary reflectors. See
62 Further Details. LDA (input) INTEGER The leading dimension
63 of the array A. LDA >= max(1,N).
64
65 E (output) REAL array, dimension (N-1)
66 If UPLO = 'U', E(n-nb:n-1) contains the superdiagonal elements
67 of the last NB columns of the reduced matrix; if UPLO = 'L',
68 E(1:nb) contains the subdiagonal elements of the first NB col‐
69 umns of the reduced matrix.
70
71 TAU (output) COMPLEX array, dimension (N-1)
72 The scalar factors of the elementary reflectors, stored in
73 TAU(n-nb:n-1) if UPLO = 'U', and in TAU(1:nb) if UPLO = 'L'.
74 See Further Details. W (output) COMPLEX array, dimension
75 (LDW,NB) The n-by-nb matrix W required to update the unreduced
76 part of A.
77
78 LDW (input) INTEGER
79 The leading dimension of the array W. LDW >= max(1,N).
80
82 If UPLO = 'U', the matrix Q is represented as a product of elementary
83 reflectors
84 Q = H(n) H(n-1) . . . H(n-nb+1).
85 Each H(i) has the form
86 H(i) = I - tau * v * v'
87 where tau is a complex scalar, and v is a complex vector with v(i:n) =
88 0 and v(i-1) = 1; v(1:i-1) is stored on exit in A(1:i-1,i), and tau in
89 TAU(i-1).
90 If UPLO = 'L', the matrix Q is represented as a product of elementary
91 reflectors
92 Q = H(1) H(2) . . . H(nb).
93 Each H(i) has the form
94 H(i) = I - tau * v * v'
95 where tau is a complex scalar, and v is a complex vector with v(1:i) =
96 0 and v(i+1) = 1; v(i+1:n) is stored on exit in A(i+1:n,i), and tau in
97 TAU(i).
98 The elements of the vectors v together form the n-by-nb matrix V which
99 is needed, with W, to apply the transformation to the unreduced part of
100 the matrix, using a Hermitian rank-2k update of the form: A := A - V*W'
101 - W*V'.
102 The contents of A on exit are illustrated by the following examples
103 with n = 5 and nb = 2:
104 if UPLO = 'U': if UPLO = 'L':
105 ( a a a v4 v5 ) ( d )
106 ( a a v4 v5 ) ( 1 d )
107 ( a 1 v5 ) ( v1 1 a )
108 ( d 1 ) ( v1 v2 a a )
109 ( d ) ( v1 v2 a a a ) where d
110 denotes a diagonal element of the reduced matrix, a denotes an element
111 of the original matrix that is unchanged, and vi denotes an element of
112 the vector defining H(i).
113
114
115
116 LAPACK auxiliary routine (versionNo3v.e2m)ber 2008 CLATRD(1)