101 SUBROUTINE clauu2( UPLO, N, A, LDA, INFO )
119 parameter( one = ( 1.0e+0, 0.0e+0 ) )
129 EXTERNAL lsame, cdotc
135 INTRINSIC cmplx, max, real
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(
'CLAUU2', -info )
165 aii = real( a( i, i ) )
167 a( i, i ) = aii*aii + real( cdotc( n-i, a( i, i+1 ), lda,
168 $ a( i, i+1 ), lda ) )
169 CALL clacgv( n-i, a( i, i+1 ), lda )
170 CALL cgemv(
'No transpose', i-1, n-i, one, a( 1, i+1 ),
171 $ lda, a( i, i+1 ), lda, cmplx( aii ),
173 CALL clacgv( n-i, a( i, i+1 ), lda )
175 CALL csscal( i, aii, a( 1, i ), 1 )
184 aii = real( a( i, i ) )
186 a( i, i ) = aii*aii + real( cdotc( n-i, a( i+1, i ), 1,
188 CALL clacgv( i-1, a( i, 1 ), lda )
189 CALL cgemv(
'Conjugate transpose', n-i, i-1, one,
190 $ a( i+1, 1 ), lda, a( i+1, i ), 1,
191 $ cmplx( aii ), a( i, 1 ), lda )
192 CALL clacgv( i-1, a( i, 1 ), lda )
194 CALL csscal( i, aii, a( i, 1 ), lda )
subroutine xerbla(SRNAME, INFO)
XERBLA
subroutine csscal(N, SA, CX, INCX)
CSSCAL
subroutine cgemv(TRANS, M, N, ALPHA, A, LDA, X, INCX, BETA, Y, INCY)
CGEMV
subroutine clacgv(N, X, INCX)
CLACGV conjugates a complex vector.
subroutine clauu2(UPLO, N, A, LDA, INFO)
CLAUU2 computes the product UUH or LHL, where U and L are upper or lower triangular matrices (unblock...