99 SUBROUTINE clauum( UPLO, N, A, LDA, INFO )
117 parameter( one = 1.0e+0 )
119 parameter( cone = ( 1.0e+0, 0.0e+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(
'CLAUUM', -info )
161 nb = ilaenv( 1,
'CLAUUM', uplo, n, -1, -1, -1 )
163 IF( nb.LE.1 .OR. nb.GE.n )
THEN
167 CALL clauu2( uplo, n, a, lda, info )
177 ib = min( nb, n-i+1 )
178 CALL ctrmm(
'Right',
'Upper',
'Conjugate transpose',
179 $
'Non-unit', i-1, ib, cone, a( i, i ), lda,
181 CALL clauu2(
'Upper', ib, a( i, i ), lda, info )
183 CALL cgemm(
'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 cherk(
'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 ctrmm(
'Left',
'Lower',
'Conjugate transpose',
199 $
'Non-unit', ib, i-1, cone, a( i, i ), lda,
201 CALL clauu2(
'Lower', ib, a( i, i ), lda, info )
203 CALL cgemm(
'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 cherk(
'Lower',
'Conjugate transpose', ib,
208 $ n-i-ib+1, one, a( i+ib, i ), lda, one,
subroutine cgemm(transa, transb, m, n, k, alpha, a, lda, b, ldb, beta, c, ldc)
CGEMM
subroutine cherk(uplo, trans, n, k, alpha, a, lda, beta, c, ldc)
CHERK
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 clauum(uplo, n, a, lda, info)
CLAUUM computes the product UUH or LHL, where U and L are upper or lower triangular matrices (blocked...
subroutine ctrmm(side, uplo, transa, diag, m, n, alpha, a, lda, b, ldb)
CTRMM