101 SUBROUTINE dpotrf ( UPLO, N, A, LDA, INFO )
113 DOUBLE PRECISION a( lda, * )
120 parameter( one = 1.0d+0 )
142 upper =
lsame( uplo,
'U' )
143 IF( .NOT.upper .AND. .NOT.
lsame( uplo,
'L' ) )
THEN
145 ELSE IF( n.LT.0 )
THEN
147 ELSE IF( lda.LT.max( 1, n ) )
THEN
151 CALL
xerbla(
'DPOTRF', -info )
162 nb =
ilaenv( 1,
'DPOTRF', uplo, n, -1, -1, -1 )
163 IF( nb.LE.1 .OR. nb.GE.n )
THEN
167 CALL
dpotf2( uplo, n, a, lda, info )
181 jb = min( nb, n-
j+1 )
183 CALL
dpotf2(
'Upper', jb, a(
j,
j ), lda, info )
192 CALL
dtrsm(
'Left',
'Upper',
'Transpose',
'Non-unit',
193 $ jb, n-
j-jb+1, one, a(
j,
j ), lda,
194 $ a(
j,
j+jb ), lda )
195 CALL
dsyrk(
'Upper',
'Transpose', n-
j-jb+1, jb, -one,
197 $ one, a(
j+jb,
j+jb ), lda )
210 jb = min( nb, n-
j+1 )
212 CALL
dpotf2(
'Lower', jb, a(
j,
j ), lda, info )
221 CALL
dtrsm(
'Right',
'Lower',
'Transpose',
'Non-unit',
222 $ n-
j-jb+1, jb, one, a(
j,
j ), lda,
223 $ a(
j+jb,
j ), lda )
225 CALL
dsyrk(
'Lower',
'No Transpose', n-
j-jb+1, jb,
226 $ -one, a(
j+jb,
j ), lda,
227 $ one, a(
j+jb,
j+jb ), lda )
subroutine dpotf2(UPLO, N, A, LDA, INFO)
DPOTF2 computes the Cholesky factorization of a symmetric/Hermitian positive definite matrix (unblock...
subroutine dgemm(TRANSA, TRANSB, M, N, K, ALPHA, A, LDA, B, LDB, BETA, C, LDC)
DGEMM
subroutine xerbla(SRNAME, INFO)
XERBLA
logical function lsame(CA, CB)
LSAME
subroutine dtrsm(SIDE, UPLO, TRANSA, DIAG, M, N, ALPHA, A, LDA, B, LDB)
DTRSM
subroutine dsyrk(UPLO, TRANS, N, K, ALPHA, A, LDA, BETA, C, LDC)
DSYRK
set ue cd $ADTTMP cat<< EOF > tmp f Program LinearEquations Implicit none Real j
integer function ilaenv(ISPEC, NAME, OPTS, N1, N2, N3, N4)
subroutine dpotrf(UPLO, N, A, LDA, INFO)
DPOTRF