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

NAME

6       SLATRD  - NB rows and columns of a real symmetric matrix A to symmetric
7       tridiagonal form by an orthogonal 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 SLATRD( UPLO, N, NB, A, LDA, E, TAU, W, LDW )
13
14           CHARACTER      UPLO
15
16           INTEGER        LDA, LDW, N, NB
17
18           REAL           A( LDA, * ), E( * ), TAU( * ), W( LDW, * )
19

PURPOSE

21       SLATRD 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.
25
26       If UPLO = 'U', SLATRD reduces the last NB rows and columns of a matrix,
27       of which the upper triangle is supplied;
28       if UPLO = 'L', SLATRD reduces the  first  NB  rows  and  columns  of  a
29       matrix, of which the lower triangle is supplied.
30
31       This is an auxiliary routine called by SSYTRD.
32
33

ARGUMENTS

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

FURTHER DETAILS

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