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 )
subroutine zgemv(TRANS, M, N, ALPHA, A, LDA, X, INCX, BETA, Y, INCY)
ZGEMV
subroutine xerbla(SRNAME, INFO)
XERBLA
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.
subroutine zdscal(N, DA, ZX, INCX)
ZDSCAL