101 SUBROUTINE zlauum( UPLO, N, A, LDA, INFO )
112 COMPLEX*16 A( lda, * )
119 parameter( one = 1.0d+0 )
121 parameter( cone = ( 1.0d+0, 0.0d+0 ) )
130 EXTERNAL lsame, ilaenv
143 upper = lsame( uplo,
'U' )
144 IF( .NOT.upper .AND. .NOT.lsame( uplo,
'L' ) )
THEN 146 ELSE IF( n.LT.0 )
THEN 148 ELSE IF( lda.LT.max( 1, n ) )
THEN 152 CALL xerbla(
'ZLAUUM', -info )
163 nb = ilaenv( 1,
'ZLAUUM', uplo, n, -1, -1, -1 )
165 IF( nb.LE.1 .OR. nb.GE.n )
THEN 169 CALL zlauu2( uplo, n, a, lda, info )
179 ib = min( nb, n-i+1 )
180 CALL ztrmm(
'Right',
'Upper',
'Conjugate transpose',
181 $
'Non-unit', i-1, ib, cone, a( i, i ), lda,
183 CALL zlauu2(
'Upper', ib, a( i, i ), lda, info )
185 CALL zgemm(
'No transpose',
'Conjugate transpose',
186 $ i-1, ib, n-i-ib+1, cone, a( 1, i+ib ),
187 $ lda, a( i, i+ib ), lda, cone, a( 1, i ),
189 CALL zherk(
'Upper',
'No transpose', ib, n-i-ib+1,
190 $ one, a( i, i+ib ), lda, one, a( i, i ),
199 ib = min( nb, n-i+1 )
200 CALL ztrmm(
'Left',
'Lower',
'Conjugate transpose',
201 $
'Non-unit', ib, i-1, cone, a( i, i ), lda,
203 CALL zlauu2(
'Lower', ib, a( i, i ), lda, info )
205 CALL zgemm(
'Conjugate transpose',
'No transpose', ib,
206 $ i-1, n-i-ib+1, cone, a( i+ib, i ), lda,
207 $ a( i+ib, 1 ), lda, cone, a( i, 1 ), lda )
208 CALL zherk(
'Lower',
'Conjugate transpose', ib,
209 $ n-i-ib+1, one, a( i+ib, i ), lda, one,
subroutine ztrmm(SIDE, UPLO, TRANSA, DIAG, M, N, ALPHA, A, LDA, B, LDB)
ZTRMM
subroutine zlauum(UPLO, N, A, LDA, INFO)
ZLAUUM computes the product UUH or LHL, where U and L are upper or lower triangular matrices (blocked...
subroutine xerbla(SRNAME, INFO)
XERBLA
subroutine zgemm(TRANSA, TRANSB, M, N, K, ALPHA, A, LDA, B, LDB, BETA, C, LDC)
ZGEMM
subroutine zherk(UPLO, TRANS, N, K, ALPHA, A, LDA, BETA, C, LDC)
ZHERK
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...