108 SUBROUTINE cpotf2( UPLO, N, A, LDA, INFO )
126 parameter( one = 1.0e+0, zero = 0.0e+0 )
128 parameter( cone = ( 1.0e+0, 0.0e+0 ) )
136 LOGICAL LSAME, SISNAN
138 EXTERNAL lsame, cdotc, sisnan
144 INTRINSIC max,
REAL, SQRT
151 upper = lsame( uplo,
'U' )
152 IF( .NOT.upper .AND. .NOT.lsame( uplo,
'L' ) )
THEN 154 ELSE IF( n.LT.0 )
THEN 156 ELSE IF( lda.LT.max( 1, n ) )
THEN 160 CALL xerbla(
'CPOTF2', -info )
177 ajj =
REAL( REAL( A( J, J ) ) - CDOTC( J-1, A( 1, J ), 1,
$ A( 1, J ), 1 ) 178 IF( ajj.LE.zero.OR.sisnan( ajj ) )
THEN 188 CALL clacgv( j-1, a( 1, j ), 1 )
189 CALL cgemv(
'Transpose', j-1, n-j, -cone, a( 1, j+1 ),
190 $ lda, a( 1, j ), 1, cone, a( j, j+1 ), lda )
191 CALL clacgv( j-1, a( 1, j ), 1 )
192 CALL csscal( n-j, one / ajj, a( j, j+1 ), lda )
203 ajj =
REAL( REAL( A( J, J ) ) - CDOTC( J-1, A( J, 1 ), LDA,
$ A( J, 1 ), LDA ) 204 IF( ajj.LE.zero.OR.sisnan( ajj ) )
THEN 214 CALL clacgv( j-1, a( j, 1 ), lda )
215 CALL cgemv(
'No transpose', n-j, j-1, -cone, a( j+1, 1 ),
216 $ lda, a( j, 1 ), lda, cone, a( j+1, j ), 1 )
217 CALL clacgv( j-1, a( j, 1 ), lda )
218 CALL csscal( n-j, one / ajj, a( j+1, j ), 1 )
233 subroutine cgemv(TRANS, M, N, ALPHA, A, LDA, X, INCX, BETA, Y, INCY)
CGEMV
subroutine xerbla(SRNAME, INFO)
XERBLA
subroutine csscal(N, SA, CX, INCX)
CSSCAL
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.