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,
$ A( I, I+1 ), LDA ) 168 CALL clacgv( n-i, a( i, i+1 ), lda )
169 CALL cgemv(
'No transpose', i-1, n-i, one, a( 1, i+1 ),
170 $ lda, a( i, i+1 ), lda, cmplx( aii ),
172 CALL clacgv( n-i, a( i, i+1 ), lda )
174 CALL csscal( i, aii, a( 1, i ), 1 )
183 aii =
REAL( A( I, I ) )
185 a( i, i ) = aii*aii +
REAL( CDOTC( N-I, A( I+1, I ), 1,
$ A( I+1, I ), 1 ) 186 CALL clacgv( i-1, a( i, 1 ), lda )
187 CALL cgemv(
'Conjugate transpose', n-i, i-1, one,
188 $ a( i+1, 1 ), lda, a( i+1, i ), 1,
189 $ cmplx( aii ), a( i, 1 ), lda )
190 CALL clacgv( i-1, a( i, 1 ), lda )
192 CALL csscal( i, aii, a( i, 1 ), lda )
202 subroutine cgemv(TRANS, M, N, ALPHA, A, LDA, X, INCX, BETA, Y, INCY)
CGEMV
subroutine xerbla(SRNAME, INFO)
XERBLA
subroutine csscal(N, SA, CX, INCX)
CSSCAL
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...
subroutine clacgv(N, X, INCX)
CLACGV conjugates a complex vector.