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

NAME

6       CLATRD - reduces NB rows and columns of a complex Hermitian matrix A to
7       Hermitian tridiagonal form by a unitary similarity transformation Q'  *
8       A  *  Q, and returns the matrices V and W which are needed to apply the
9       transformation to the unreduced part of A
10

SYNOPSIS

12       SUBROUTINE CLATRD( UPLO, N, NB, A, LDA, E, TAU, W, LDW )
13
14           CHARACTER      UPLO
15
16           INTEGER        LDA, LDW, N, NB
17
18           REAL           E( * )
19
20           COMPLEX        A( LDA, * ), TAU( * ), W( LDW, * )
21

PURPOSE

23       CLATRD reduces NB rows and columns of a complex Hermitian matrix  A  to
24       Hermitian  tridiagonal form by a unitary similarity transformation Q' *
25       A * Q, and returns the matrices V and W which are needed to  apply  the
26       transformation  to  the  unreduced  part  of  A.  If UPLO = 'U', CLATRD
27       reduces the last NB rows and columns of a matrix, of  which  the  upper
28       triangle is supplied;
29       if  UPLO  =  'L',  CLATRD  reduces  the  first NB rows and columns of a
30       matrix, of which the lower triangle is supplied.
31       This is an auxiliary routine called by CHETRD.
32

ARGUMENTS

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

FURTHER DETAILS

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