110 SUBROUTINE zpotf2( UPLO, N, A, LDA, INFO )
122 COMPLEX*16 A( lda, * )
128 DOUBLE PRECISION ONE, ZERO
129 parameter ( one = 1.0d+0, zero = 0.0d+0 )
131 parameter ( cone = ( 1.0d+0, 0.0d+0 ) )
139 LOGICAL LSAME, DISNAN
141 EXTERNAL lsame, zdotc, disnan
147 INTRINSIC dble, max, 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(
'ZPOTF2', -info )
180 ajj = dble( a( j, j ) ) - zdotc( j-1, a( 1, j ), 1,
182 IF( ajj.LE.zero.OR.disnan( ajj ) )
THEN
192 CALL zlacgv( j-1, a( 1, j ), 1 )
193 CALL zgemv(
'Transpose', j-1, n-j, -cone, a( 1, j+1 ),
194 $ lda, a( 1, j ), 1, cone, a( j, j+1 ), lda )
195 CALL zlacgv( j-1, a( 1, j ), 1 )
196 CALL zdscal( n-j, one / ajj, a( j, j+1 ), lda )
207 ajj = dble( a( j, j ) ) - zdotc( j-1, a( j, 1 ), lda,
209 IF( ajj.LE.zero.OR.disnan( ajj ) )
THEN
219 CALL zlacgv( j-1, a( j, 1 ), lda )
220 CALL zgemv(
'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 zlacgv( j-1, a( j, 1 ), lda )
223 CALL zdscal( n-j, one / ajj, a( j+1, j ), 1 )
subroutine zgemv(TRANS, M, N, ALPHA, A, LDA, X, INCX, BETA, Y, INCY)
ZGEMV
subroutine xerbla(SRNAME, INFO)
XERBLA
subroutine zdscal(N, DA, ZX, INCX)
ZDSCAL
subroutine zpotf2(UPLO, N, A, LDA, INFO)
ZPOTF2 computes the Cholesky factorization of a symmetric/Hermitian positive definite matrix (unblock...
subroutine zlacgv(N, X, INCX)
ZLACGV conjugates a complex vector.