101 SUBROUTINE zpotrf ( UPLO, N, A, LDA, INFO )
113 COMPLEX*16 a( lda, * )
121 parameter( one = 1.0d+0, cone = ( 1.0d+0, 0.0d+0 ) )
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(
'ZPOTRF', -info )
163 nb =
ilaenv( 1,
'ZPOTRF', uplo, n, -1, -1, -1 )
164 IF( nb.LE.1 .OR. nb.GE.n )
THEN
168 CALL
zpotf2( uplo, n, a, lda, info )
179 jb = min( nb, n-
j+1 )
183 CALL
ztrsm(
'Left',
'Upper',
'Conjugate Transpose',
184 $
'Non-unit',
j-1, jb, cone, a( 1, 1 ), lda,
187 CALL
zherk(
'Upper',
'Conjugate Transpose', jb,
j-1,
188 $ -one, a( 1,
j ), lda, one, a(
j,
j ), lda )
193 CALL
zpotf2(
'Upper', jb, a(
j,
j ), lda, info )
205 jb = min( nb, n-
j+1 )
209 CALL
ztrsm(
'Right',
'Lower',
'Conjugate Transpose',
210 $
'Non-unit', jb,
j-1, cone, a( 1, 1 ), lda,
213 CALL
zherk(
'Lower',
'No Transpose', jb,
j-1,
214 $ -one, a(
j, 1 ), lda,
215 $ one, a(
j,
j ), lda )
220 CALL
zpotf2(
'Lower', jb, a(
j,
j ), lda, info )
subroutine zherk(UPLO, TRANS, N, K, ALPHA, A, LDA, BETA, C, LDC)
ZHERK
subroutine zpotrf(UPLO, N, A, LDA, INFO)
ZPOTRF VARIANT: right looking block version of the algorithm, calling Level 3 BLAS.
LOGICAL function lsame(CA, CB)
LSAME
subroutine ztrsm(SIDE, UPLO, TRANSA, DIAG, M, N, ALPHA, A, LDA, B, LDB)
ZTRSM
subroutine zgemm(TRANSA, TRANSB, M, N, K, ALPHA, A, LDA, B, LDB, BETA, C, LDC)
ZGEMM
subroutine xerbla(SRNAME, INFO)
XERBLA
INTEGER function ilaenv(ISPEC, NAME, OPTS, N1, N2, N3, N4)
set ue cd $ADTTMP cat<< EOF > tmp f Program LinearEquations Implicit none Real j
subroutine zpotf2(UPLO, N, A, LDA, INFO)
ZPOTF2 computes the Cholesky factorization of a symmetric/Hermitian positive definite matrix (unblock...