1DLATRD(1)           LAPACK auxiliary routine (version 3.2)           DLATRD(1)
2
3
4

NAME

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

SYNOPSIS

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

PURPOSE

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

ARGUMENTS

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

FURTHER DETAILS

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