103 SUBROUTINE dlauu2( UPLO, N, A, LDA, INFO )
115 DOUBLE PRECISION a( lda, * )
122 parameter( one = 1.0d+0 )
131 DOUBLE PRECISION ddot
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(
'DLAUU2', -info )
170 a( i, i ) =
ddot( n-i+1, a( i, i ), lda, a( i, i ), lda )
171 CALL
dgemv(
'No transpose', i-1, n-i, one, a( 1, i+1 ),
172 $ lda, a( i, i+1 ), lda, aii, a( 1, i ), 1 )
174 CALL
dscal( i, aii, a( 1, i ), 1 )
185 a( i, i ) =
ddot( n-i+1, a( i, i ), 1, a( i, i ), 1 )
186 CALL
dgemv(
'Transpose', n-i, i-1, one, a( i+1, 1 ), lda,
187 $ a( i+1, i ), 1, aii, a( i, 1 ), lda )
189 CALL
dscal( i, aii, a( i, 1 ), lda )
LOGICAL function lsame(CA, CB)
LSAME
subroutine xerbla(SRNAME, INFO)
XERBLA
subroutine dlauu2(UPLO, N, A, LDA, INFO)
DLAUU2 computes the product UUH or LHL, where U and L are upper or lower triangular matrices (unblock...
subroutine dscal(N, DA, DX, INCX)
DSCAL
DOUBLE PRECISION function ddot(N, DX, INCX, DY, INCY)
DDOT
subroutine dgemv(TRANS, M, N, ALPHA, A, LDA, X, INCX, BETA, Y, INCY)
DGEMV