1SSYTRD(1)                LAPACK routine (version 3.2)                SSYTRD(1)
2
3
4

NAME

6       SSYTRD  - reduces a real symmetric matrix A to real symmetric tridiago‐
7       nal form T by an orthogonal similarity transformation
8

SYNOPSIS

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

PURPOSE

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

ARGUMENTS

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

FURTHER DETAILS

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)
Impressum