106 SUBROUTINE zpotrf( UPLO, N, A, LDA, INFO )
117 COMPLEX*16 A( LDA, * )
125 parameter( one = 1.0d+0, cone = ( 1.0d+0, 0.0d+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(
'ZPOTRF', -info )
167 nb = ilaenv( 1,
'ZPOTRF', uplo, n, -1, -1, -1 )
168 IF( nb.LE.1 .OR. nb.GE.n )
THEN
172 CALL zpotrf2( uplo, n, a, lda, info )
186 jb = min( nb, n-j+1 )
187 CALL zherk(
'Upper',
'Conjugate transpose', jb, j-1,
188 $ -one, a( 1, j ), lda, one, a( j, j ), lda )
189 CALL zpotrf2(
'Upper', jb, a( j, j ), lda, info )
196 CALL zgemm(
'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 ztrsm(
'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 zherk(
'Lower',
'No transpose', jb, j-1, -one,
217 $ a( j, 1 ), lda, one, a( j, j ), lda )
218 CALL zpotrf2(
'Lower', jb, a( j, j ), lda, info )
225 CALL zgemm(
'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 ztrsm(
'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 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
recursive subroutine zpotrf2(uplo, n, a, lda, info)
ZPOTRF2
subroutine zpotrf(uplo, n, a, lda, info)
ZPOTRF
subroutine ztrsm(side, uplo, transa, diag, m, n, alpha, a, lda, b, ldb)
ZTRSM