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...