110 SUBROUTINE cpotf2( UPLO, N, A, LDA, INFO )
129 parameter ( one = 1.0e+0, zero = 0.0e+0 )
131 parameter ( cone = ( 1.0e+0, 0.0e+0 ) )
139 LOGICAL LSAME, SISNAN
141 EXTERNAL lsame, cdotc, sisnan
147 INTRINSIC max,
REAL, SQRT
154 upper = lsame( uplo,
'U' )
155 IF( .NOT.upper .AND. .NOT.lsame( uplo,
'L' ) )
THEN
157 ELSE IF( n.LT.0 )
THEN
159 ELSE IF( lda.LT.max( 1, n ) )
THEN
163 CALL xerbla(
'CPOTF2', -info )
180 ajj =
REAL( A( J, J ) ) - CDOTC( j-1, a( 1, j ), 1,
182 IF( ajj.LE.zero.OR.sisnan( ajj ) )
THEN
192 CALL clacgv( j-1, a( 1, j ), 1 )
193 CALL cgemv(
'Transpose', j-1, n-j, -cone, a( 1, j+1 ),
194 $ lda, a( 1, j ), 1, cone, a( j, j+1 ), lda )
195 CALL clacgv( j-1, a( 1, j ), 1 )
196 CALL csscal( n-j, one / ajj, a( j, j+1 ), lda )
207 ajj =
REAL( A( J, J ) ) - CDOTC( j-1, a( j, 1 ), lda,
209 IF( ajj.LE.zero.OR.sisnan( ajj ) )
THEN
219 CALL clacgv( j-1, a( j, 1 ), lda )
220 CALL cgemv(
'No transpose', n-j, j-1, -cone, a( j+1, 1 ),
221 $ lda, a( j, 1 ), lda, cone, a( j+1, j ), 1 )
222 CALL clacgv( j-1, a( j, 1 ), lda )
223 CALL csscal( n-j, one / ajj, a( j+1, j ), 1 )
subroutine xerbla(SRNAME, INFO)
XERBLA
subroutine cgemv(TRANS, M, N, ALPHA, A, LDA, X, INCX, BETA, Y, INCY)
CGEMV
subroutine cpotf2(UPLO, N, A, LDA, INFO)
CPOTF2 computes the Cholesky factorization of a symmetric/Hermitian positive definite matrix (unblock...
subroutine clacgv(N, X, INCX)
CLACGV conjugates a complex vector.
subroutine csscal(N, SA, CX, INCX)
CSSCAL