110 SUBROUTINE dpotf2( UPLO, N, A, LDA, INFO )
122 DOUBLE PRECISION A( lda, * )
128 DOUBLE PRECISION ONE, ZERO
129 parameter ( one = 1.0d+0, zero = 0.0d+0 )
137 LOGICAL LSAME, DISNAN
138 DOUBLE PRECISION DDOT
139 EXTERNAL lsame, ddot, disnan
152 upper = lsame( uplo,
'U' )
153 IF( .NOT.upper .AND. .NOT.lsame( uplo,
'L' ) )
THEN
155 ELSE IF( n.LT.0 )
THEN
157 ELSE IF( lda.LT.max( 1, n ) )
THEN
161 CALL xerbla(
'DPOTF2', -info )
178 ajj = a( j, j ) - ddot( j-1, a( 1, j ), 1, a( 1, j ), 1 )
179 IF( ajj.LE.zero.OR.disnan( ajj ) )
THEN
189 CALL dgemv(
'Transpose', j-1, n-j, -one, a( 1, j+1 ),
190 $ lda, a( 1, j ), 1, one, a( j, j+1 ), lda )
191 CALL dscal( n-j, one / ajj, a( j, j+1 ), lda )
202 ajj = a( j, j ) - ddot( j-1, a( j, 1 ), lda, a( j, 1 ),
204 IF( ajj.LE.zero.OR.disnan( ajj ) )
THEN
214 CALL dgemv(
'No transpose', n-j, j-1, -one, a( j+1, 1 ),
215 $ lda, a( j, 1 ), lda, one, a( j+1, j ), 1 )
216 CALL dscal( n-j, one / ajj, a( j+1, j ), 1 )
subroutine dgemv(TRANS, M, N, ALPHA, A, LDA, X, INCX, BETA, Y, INCY)
DGEMV
subroutine xerbla(SRNAME, INFO)
XERBLA
subroutine dscal(N, DA, DX, INCX)
DSCAL
subroutine dpotf2(UPLO, N, A, LDA, INFO)
DPOTF2 computes the Cholesky factorization of a symmetric/Hermitian positive definite matrix (unblock...