101 SUBROUTINE zlauu2( UPLO, N, A, LDA, INFO )
112 COMPLEX*16 A( LDA, * )
119 parameter( one = ( 1.0d+0, 0.0d+0 ) )
129 EXTERNAL lsame, zdotc
135 INTRINSIC dble, dcmplx, max
142 upper = lsame( uplo,
'U' )
143 IF( .NOT.upper .AND. .NOT.lsame( uplo,
'L' ) )
THEN
145 ELSE IF( n.LT.0 )
THEN
147 ELSE IF( lda.LT.max( 1, n ) )
THEN
151 CALL xerbla(
'ZLAUU2', -info )
165 aii = dble( a( i, i ) )
167 a( i, i ) = aii*aii + dble( zdotc( n-i, a( i, i+1 ), lda,
168 $ a( i, i+1 ), lda ) )
169 CALL zlacgv( n-i, a( i, i+1 ), lda )
170 CALL zgemv(
'No transpose', i-1, n-i, one, a( 1, i+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 ), 1,
188 CALL zlacgv( i-1, a( i, 1 ), lda )
189 CALL zgemv(
'Conjugate transpose', n-i, i-1, one,
190 $ a( i+1, 1 ), lda, a( i+1, i ), 1,
191 $ dcmplx( aii ), a( i, 1 ), lda )
192 CALL zlacgv( i-1, a( i, 1 ), lda )
194 CALL zdscal( i, aii, a( i, 1 ), lda )
subroutine xerbla(SRNAME, INFO)
XERBLA
subroutine zdscal(N, DA, ZX, INCX)
ZDSCAL
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...
subroutine zlacgv(N, X, INCX)
ZLACGV conjugates a complex vector.