1SSYTRD(1) LAPACK routine (version 3.2) SSYTRD(1)
2
3
4
6 SSYTRD - reduces a real symmetric matrix A to real symmetric tridiago‐
7 nal form T by an orthogonal similarity transformation
8
10 SUBROUTINE SSYTRD( UPLO, N, A, LDA, D, E, TAU, WORK, LWORK, INFO )
11
12 CHARACTER UPLO
13
14 INTEGER INFO, LDA, LWORK, N
15
16 REAL A( LDA, * ), D( * ), E( * ), TAU( * ), WORK( * )
17
19 SSYTRD reduces a real symmetric matrix A to real symmetric tridiagonal
20 form T by an orthogonal similarity transformation: Q**T * A * Q = T.
21
23 UPLO (input) CHARACTER*1
24 = 'U': Upper triangle of A is stored;
25 = 'L': Lower triangle of A is stored.
26
27 N (input) INTEGER
28 The order of the matrix A. N >= 0.
29
30 A (input/output) REAL array, dimension (LDA,N)
31 On entry, the symmetric matrix A. If UPLO = 'U', the leading
32 N-by-N upper triangular part of A contains the upper triangular
33 part of the matrix A, and the strictly lower triangular part of
34 A is not referenced. If UPLO = 'L', the leading N-by-N lower
35 triangular part of A contains the lower triangular part of the
36 matrix A, and the strictly upper triangular part of A is not
37 referenced. On exit, if UPLO = 'U', the diagonal and first
38 superdiagonal of A are overwritten by the corresponding ele‐
39 ments of the tridiagonal matrix T, and the elements above the
40 first superdiagonal, with the array TAU, represent the orthogo‐
41 nal matrix Q as a product of elementary reflectors; if UPLO =
42 'L', the diagonal and first subdiagonal of A are over- written
43 by the corresponding elements of the tridiagonal matrix T, and
44 the elements below the first subdiagonal, with the array TAU,
45 represent the orthogonal matrix Q as a product of elementary
46 reflectors. See Further Details. LDA (input) INTEGER The
47 leading dimension of the array A. LDA >= max(1,N).
48
49 D (output) REAL array, dimension (N)
50 The diagonal elements of the tridiagonal matrix T: D(i) =
51 A(i,i).
52
53 E (output) REAL array, dimension (N-1)
54 The off-diagonal elements of the tridiagonal matrix T: E(i) =
55 A(i,i+1) if UPLO = 'U', E(i) = A(i+1,i) if UPLO = 'L'.
56
57 TAU (output) REAL array, dimension (N-1)
58 The scalar factors of the elementary reflectors (see Further
59 Details).
60
61 WORK (workspace/output) REAL array, dimension (MAX(1,LWORK))
62 On exit, if INFO = 0, WORK(1) returns the optimal LWORK.
63
64 LWORK (input) INTEGER
65 The dimension of the array WORK. LWORK >= 1. For optimum per‐
66 formance LWORK >= N*NB, where NB is the optimal blocksize. If
67 LWORK = -1, then a workspace query is assumed; the routine only
68 calculates the optimal size of the WORK array, returns this
69 value as the first entry of the WORK array, and no error mes‐
70 sage related to LWORK is issued by XERBLA.
71
72 INFO (output) INTEGER
73 = 0: successful exit
74 < 0: if INFO = -i, the i-th argument had an illegal value
75
77 If UPLO = 'U', the matrix Q is represented as a product of elementary
78 reflectors
79 Q = H(n-1) . . . H(2) H(1).
80 Each H(i) has the form
81 H(i) = I - tau * v * v'
82 where tau is a real scalar, and v is a real vector with
83 v(i+1:n) = 0 and v(i) = 1; v(1:i-1) is stored on exit in
84 A(1:i-1,i+1), and tau in TAU(i).
85 If UPLO = 'L', the matrix Q is represented as a product of elementary
86 reflectors
87 Q = H(1) H(2) . . . H(n-1).
88 Each H(i) has the form
89 H(i) = I - tau * v * v'
90 where tau is a real scalar, and v is a real vector with
91 v(1:i) = 0 and v(i+1) = 1; v(i+2:n) is stored on exit in A(i+2:n,i),
92 and tau in TAU(i).
93 The contents of A on exit are illustrated by the following examples
94 with n = 5:
95 if UPLO = 'U': if UPLO = 'L':
96 ( d e v2 v3 v4 ) ( d )
97 ( d e v3 v4 ) ( e d )
98 ( d e v4 ) ( v1 e d )
99 ( d e ) ( v1 v2 e d )
100 ( d ) ( v1 v2 v3 e d ) where d
101 and e denote diagonal and off-diagonal elements of T, and vi denotes an
102 element of the vector defining H(i).
103
104
105
106 LAPACK routine (version 3.2) November 2008 SSYTRD(1)