108 SUBROUTINE dpotf2( UPLO, N, A, LDA, INFO )
119 DOUBLE PRECISION A( LDA, * )
125 DOUBLE PRECISION ONE, ZERO
126 parameter( one = 1.0d+0, zero = 0.0d+0 )
134 LOGICAL LSAME, DISNAN
135 DOUBLE PRECISION DDOT
136 EXTERNAL lsame, ddot, disnan
149 upper = lsame( uplo,
'U' )
150 IF( .NOT.upper .AND. .NOT.lsame( uplo,
'L' ) )
THEN
152 ELSE IF( n.LT.0 )
THEN
154 ELSE IF( lda.LT.max( 1, n ) )
THEN
158 CALL xerbla(
'DPOTF2', -info )
175 ajj = a( j, j ) - ddot( j-1, a( 1, j ), 1, a( 1, j ), 1 )
176 IF( ajj.LE.zero.OR.disnan( ajj ) )
THEN
186 CALL dgemv(
'Transpose', j-1, n-j, -one, a( 1, j+1 ),
187 $ lda, a( 1, j ), 1, one, a( j, j+1 ), lda )
188 CALL dscal( n-j, one / ajj, a( j, j+1 ), lda )
199 ajj = a( j, j ) - ddot( j-1, a( j, 1 ), lda, a( j, 1 ),
201 IF( ajj.LE.zero.OR.disnan( ajj ) )
THEN
211 CALL dgemv(
'No transpose', n-j, j-1, -one, a( j+1, 1 ),
212 $ lda, a( j, 1 ), lda, one, a( j+1, j ), 1 )
213 CALL dscal( n-j, one / ajj, a( j+1, j ), 1 )
subroutine xerbla(SRNAME, INFO)
XERBLA
subroutine dscal(N, DA, DX, INCX)
DSCAL
subroutine dgemv(TRANS, M, N, ALPHA, A, LDA, X, INCX, BETA, Y, INCY)
DGEMV
subroutine dpotf2(UPLO, N, A, LDA, INFO)
DPOTF2 computes the Cholesky factorization of a symmetric/Hermitian positive definite matrix (unblock...