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 xerbla(srname, info)
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...
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 ztrmm(side, uplo, transa, diag, m, n, alpha, a, lda, b, ldb)
ZTRMM