99 SUBROUTINE zlauu2( UPLO, N, A, LDA, INFO )
110 COMPLEX*16 A( LDA, * )
117 parameter( one = ( 1.0d+0, 0.0d+0 ) )
127 EXTERNAL lsame, zdotc
133 INTRINSIC dble, dcmplx, max
140 upper = lsame( uplo,
'U' )
141 IF( .NOT.upper .AND. .NOT.lsame( uplo,
'L' ) )
THEN
143 ELSE IF( n.LT.0 )
THEN
145 ELSE IF( lda.LT.max( 1, n ) )
THEN
149 CALL xerbla(
'ZLAUU2', -info )
163 aii = dble( a( i, i ) )
165 a( i, i ) = aii*aii + dble( zdotc( n-i, a( i, i+1 ),
167 $ a( i, i+1 ), lda ) )
168 CALL zlacgv( n-i, a( i, i+1 ), lda )
169 CALL zgemv(
'No transpose', i-1, n-i, one, a( 1,
171 $ lda, a( i, i+1 ), lda, dcmplx( aii ),
173 CALL zlacgv( n-i, a( i, i+1 ), lda )
175 CALL zdscal( i, aii, a( 1, i ), 1 )
184 aii = dble( a( i, i ) )
186 a( i, i ) = aii*aii + dble( zdotc( n-i, a( i+1, i ),
189 CALL zlacgv( i-1, a( i, 1 ), lda )
190 CALL zgemv(
'Conjugate transpose', n-i, i-1, one,
191 $ a( i+1, 1 ), lda, a( i+1, i ), 1,
192 $ dcmplx( aii ), a( i, 1 ), lda )
193 CALL zlacgv( i-1, a( i, 1 ), lda )
195 CALL zdscal( i, aii, a( i, 1 ), lda )
subroutine zgemv(trans, m, n, alpha, a, lda, x, incx, beta, y, incy)
ZGEMV
subroutine zlauu2(uplo, n, a, lda, info)
ZLAUU2 computes the product UUH or LHL, where U and L are upper or lower triangular matrices (unblock...