106 SUBROUTINE cpotrf( UPLO, N, A, LDA, INFO )
125 parameter( one = 1.0e+0, cone = ( 1.0e+0, 0.0e+0 ) )
134 EXTERNAL lsame, ilaenv
147 upper = lsame( uplo,
'U' )
148 IF( .NOT.upper .AND. .NOT.lsame( uplo,
'L' ) )
THEN
150 ELSE IF( n.LT.0 )
THEN
152 ELSE IF( lda.LT.max( 1, n ) )
THEN
156 CALL xerbla(
'CPOTRF', -info )
167 nb = ilaenv( 1,
'CPOTRF', uplo, n, -1, -1, -1 )
168 IF( nb.LE.1 .OR. nb.GE.n )
THEN
172 CALL cpotrf2( uplo, n, a, lda, info )
186 jb = min( nb, n-j+1 )
187 CALL cherk(
'Upper',
'Conjugate transpose', jb, j-1,
188 $ -one, a( 1, j ), lda, one, a( j, j ), lda )
189 CALL cpotrf2(
'Upper', jb, a( j, j ), lda, info )
196 CALL cgemm(
'Conjugate transpose',
'No transpose', jb,
197 $ n-j-jb+1, j-1, -cone, a( 1, j ), lda,
198 $ a( 1, j+jb ), lda, cone, a( j, j+jb ),
200 CALL ctrsm(
'Left',
'Upper',
'Conjugate transpose',
201 $
'Non-unit', jb, n-j-jb+1, cone, a( j, j ),
202 $ lda, a( j, j+jb ), lda )
215 jb = min( nb, n-j+1 )
216 CALL cherk(
'Lower',
'No transpose', jb, j-1, -one,
217 $ a( j, 1 ), lda, one, a( j, j ), lda )
218 CALL cpotrf2(
'Lower', jb, a( j, j ), lda, info )
225 CALL cgemm(
'No transpose',
'Conjugate transpose',
226 $ n-j-jb+1, jb, j-1, -cone, a( j+jb, 1 ),
227 $ lda, a( j, 1 ), lda, cone, a( j+jb, j ),
229 CALL ctrsm(
'Right',
'Lower',
'Conjugate transpose',
230 $
'Non-unit', n-j-jb+1, jb, cone, a( j, j ),
231 $ lda, a( j+jb, j ), lda )
subroutine xerbla(srname, info)
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
recursive subroutine cpotrf2(uplo, n, a, lda, info)
CPOTRF2
subroutine cpotrf(uplo, n, a, lda, info)
CPOTRF
subroutine ctrsm(side, uplo, transa, diag, m, n, alpha, a, lda, b, ldb)
CTRSM