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