103 SUBROUTINE zlauu2( UPLO, N, A, LDA, INFO )
115 COMPLEX*16 A( LDA, * )
122 parameter( one = ( 1.0d+0, 0.0d+0 ) )
132 EXTERNAL lsame, zdotc
138 INTRINSIC dble, dcmplx, max
145 upper = lsame( uplo,
'U' )
146 IF( .NOT.upper .AND. .NOT.lsame( uplo,
'L' ) )
THEN
148 ELSE IF( n.LT.0 )
THEN
150 ELSE IF( lda.LT.max( 1, n ) )
THEN
154 CALL xerbla(
'ZLAUU2', -info )
170 a( i, i ) = aii*aii + dble( zdotc( n-i, a( i, i+1 ), lda,
171 $ a( i, i+1 ), lda ) )
172 CALL zlacgv( n-i, a( i, i+1 ), lda )
173 CALL zgemv(
'No transpose', i-1, n-i, one, a( 1, i+1 ),
174 $ lda, a( i, i+1 ), lda, dcmplx( aii ),
176 CALL zlacgv( n-i, a( i, i+1 ), lda )
178 CALL zdscal( i, aii, a( 1, i ), 1 )
189 a( i, i ) = aii*aii + dble( zdotc( n-i, a( i+1, i ), 1,
191 CALL zlacgv( i-1, a( i, 1 ), lda )
192 CALL zgemv(
'Conjugate transpose', n-i, i-1, one,
193 $ a( i+1, 1 ), lda, a( i+1, i ), 1,
194 $ dcmplx( aii ), a( i, 1 ), lda )
195 CALL zlacgv( i-1, a( i, 1 ), lda )
197 CALL zdscal( i, aii, a( i, 1 ), lda )