101 SUBROUTINE cpotrf ( UPLO, N, A, LDA, INFO )
121 parameter( one = 1.0e+0, cone = ( 1.0e+0, 0.0e+0 ) )
143 upper =
lsame( uplo,
'U' )
144 IF( .NOT.upper .AND. .NOT.
lsame( uplo,
'L' ) )
THEN 146 ELSE IF( n.LT.0 )
THEN 148 ELSE IF( lda.LT.max( 1, n ) )
THEN 152 CALL xerbla(
'CPOTRF', -info )
163 nb =
ilaenv( 1,
'CPOTRF', uplo, n, -1, -1, -1 )
164 IF( nb.LE.1 .OR. nb.GE.n )
THEN 168 CALL cpotf2( uplo, n, a, lda, info )
179 jb = min( nb, n-j+1 )
183 CALL ctrsm(
'Left',
'Upper',
'Conjugate Transpose',
184 $
'Non-unit', j-1, jb, cone, a( 1, 1 ), lda,
187 CALL cherk(
'Upper',
'Conjugate Transpose', jb, j-1,
188 $ -one, a( 1, j ), lda, one, a( j, j ), lda )
193 CALL cpotf2(
'Upper', jb, a( j, j ), lda, info )
205 jb = min( nb, n-j+1 )
209 CALL ctrsm(
'Right',
'Lower',
'Conjugate Transpose',
210 $
'Non-unit', jb, j-1, cone, a( 1, 1 ), lda,
213 CALL cherk(
'Lower',
'No Transpose', jb, j-1,
214 $ -one, a( j, 1 ), lda,
215 $ one, a( j, j ), lda )
220 CALL cpotf2(
'Lower', jb, a( j, j ), lda, info )
subroutine cherk(UPLO, TRANS, N, K, ALPHA, A, LDA, BETA, C, LDC)
CHERK
integer function ilaenv(ISPEC, NAME, OPTS, N1, N2, N3, N4)
ILAENV
subroutine ctrsm(SIDE, UPLO, TRANSA, DIAG, M, N, ALPHA, A, LDA, B, LDB)
CTRSM
subroutine xerbla(SRNAME, INFO)
XERBLA
logical function lsame(CA, CB)
LSAME
subroutine cpotrf(UPLO, N, A, LDA, INFO)
CPOTRF
subroutine cpotf2(UPLO, N, A, LDA, INFO)
CPOTF2 computes the Cholesky factorization of a symmetric/Hermitian positive definite matrix (unblock...
subroutine cgemm(TRANSA, TRANSB, M, N, K, ALPHA, A, LDA, B, LDB, BETA, C, LDC)
CGEMM