1 SUBROUTINE dpotf2( UPLO, N, A, LDA, INFO )
13 DOUBLE PRECISION A( LDA, * )
66 DOUBLE PRECISION ONE, ZERO
67 parameter( one = 1.0d+0, zero = 0.0d+0 )
90 upper = lsame( uplo,
'U' )
91 IF( .NOT.upper .AND. .NOT.lsame( uplo,
'L' ) )
THEN
93 ELSE IF( n.LT.0 )
THEN
95 ELSE IF( lda.LT.max( 1, n ) )
THEN
99 CALL xerbla(
'DPOTF2', -info )
116 ajj = a( j, j ) - ddot( j-1, a( 1, j ), 1, a( 1, j ), 1 )
117 IF( ajj.LE.zero )
THEN
127 CALL dgemv(
'Transpose', j-1, n-j, -one, a( 1, j+1 ),
128 $ lda, a( 1, j ), 1, one, a( j, j+1 ), lda )
129 CALL dscal( n-j, one / ajj, a( j, j+1 ), lda )
140 ajj = a( j, j ) - ddot( j-1, a( j, 1 ), lda, a( j, 1 ),
142 IF( ajj.LE.zero )
THEN
152 CALL dgemv(
'No transpose', n-j, j-1, -one, a( j+1, 1 ),
153 $ lda, a( j, 1 ), lda, one, a( j+1, j ), 1 )
154 CALL dscal( n-j, one / ajj, a( j+1, j ), 1 )
subroutine dgemv(TRANS, M, N, ALPHA, A, LDA, X, INCX, BETA, Y, INCY)
subroutine dpotf2(UPLO, N, A, LDA, INFO)
subroutine dscal(n, da, dx, incx)
subroutine xerbla(SRNAME, INFO)