99 SUBROUTINE zlauum( UPLO, N, A, LDA, INFO )
110 COMPLEX*16 A( LDA, * )
117 parameter( one = 1.0d+0 )
119 parameter( cone = ( 1.0d+0, 0.0d+0 ) )
128 EXTERNAL lsame, ilaenv
141 upper = lsame( uplo,
'U' )
142 IF( .NOT.upper .AND. .NOT.lsame( uplo,
'L' ) )
THEN
144 ELSE IF( n.LT.0 )
THEN
146 ELSE IF( lda.LT.max( 1, n ) )
THEN
150 CALL xerbla(
'ZLAUUM', -info )
161 nb = ilaenv( 1,
'ZLAUUM', uplo, n, -1, -1, -1 )
163 IF( nb.LE.1 .OR. nb.GE.n )
THEN
167 CALL zlauu2( uplo, n, a, lda, info )
177 ib = min( nb, n-i+1 )
178 CALL ztrmm(
'Right',
'Upper',
'Conjugate transpose',
179 $
'Non-unit', i-1, ib, cone, a( i, i ), lda,
181 CALL zlauu2(
'Upper', ib, a( i, i ), lda, info )
183 CALL zgemm(
'No transpose',
'Conjugate transpose',
184 $ i-1, ib, n-i-ib+1, cone, a( 1, i+ib ),
185 $ lda, a( i, i+ib ), lda, cone, a( 1, i ),
187 CALL zherk(
'Upper',
'No transpose', ib, n-i-ib+1,
188 $ one, a( i, i+ib ), lda, one, a( i, i ),
197 ib = min( nb, n-i+1 )
198 CALL ztrmm(
'Left',
'Lower',
'Conjugate transpose',
199 $
'Non-unit', ib, i-1, cone, a( i, i ), lda,
201 CALL zlauu2(
'Lower', ib, a( i, i ), lda, info )
203 CALL zgemm(
'Conjugate transpose',
'No transpose',
205 $ i-1, n-i-ib+1, cone, a( i+ib, i ), lda,
206 $ a( i+ib, 1 ), lda, cone, a( i, 1 ), lda )
207 CALL zherk(
'Lower',
'Conjugate transpose', ib,
208 $ n-i-ib+1, one, a( i+ib, i ), lda, one,
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