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 dpotf2(UPLO, N, A, LDA, INFO)
DPOTF2 computes the Cholesky factorization of a symmetric/Hermitian positive definite matrix (unblock...
subroutine xerbla(SRNAME, INFO)
XERBLA
subroutine dgemv(TRANS, M, N, ALPHA, A, LDA, X, INCX, BETA, Y, INCY)
DGEMV
subroutine dscal(N, DA, DX, INCX)
DSCAL