110 SUBROUTINE spotf2( UPLO, N, A, LDA, INFO )
129 parameter ( one = 1.0e+0, zero = 0.0e+0 )
137 LOGICAL LSAME, SISNAN
139 EXTERNAL lsame, sdot, sisnan
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(
'SPOTF2', -info )
178 ajj = a( j, j ) - sdot( j-1, a( 1, j ), 1, a( 1, j ), 1 )
179 IF( ajj.LE.zero.OR.sisnan( ajj ) )
THEN
189 CALL sgemv(
'Transpose', j-1, n-j, -one, a( 1, j+1 ),
190 $ lda, a( 1, j ), 1, one, a( j, j+1 ), lda )
191 CALL sscal( n-j, one / ajj, a( j, j+1 ), lda )
202 ajj = a( j, j ) - sdot( j-1, a( j, 1 ), lda, a( j, 1 ),
204 IF( ajj.LE.zero.OR.sisnan( ajj ) )
THEN
214 CALL sgemv(
'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 sscal( n-j, one / ajj, a( j+1, j ), 1 )
subroutine sgemv(TRANS, M, N, ALPHA, A, LDA, X, INCX, BETA, Y, INCY)
SGEMV
subroutine spotf2(UPLO, N, A, LDA, INFO)
SPOTF2 computes the Cholesky factorization of a symmetric/Hermitian positive definite matrix (unblock...
subroutine xerbla(SRNAME, INFO)
XERBLA
subroutine sscal(N, SA, SX, INCX)
SSCAL