101 SUBROUTINE cpotrf ( UPLO, N, A, LDA, INFO )
121 parameter ( one = 1.0e+0, cone = ( 1.0e+0, 0.0e+0 ) )
130 EXTERNAL lsame, ilaenv
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 )
182 jb = min( nb, n-j+1 )
184 CALL cpotf2(
'Upper', jb, a( j, j ), lda, info )
193 CALL ctrsm(
'Left',
'Upper',
'Conjugate Transpose',
194 $
'Non-unit', jb, n-j-jb+1, cone, a( j, j ),
195 $ lda, a( j, j+jb ), lda )
196 CALL cherk(
'Upper',
'Conjugate transpose', n-j-jb+1,
197 $ jb, -one, a( j, j+jb ), lda,
198 $ one, a( j+jb, j+jb ), lda )
211 jb = min( nb, n-j+1 )
213 CALL cpotf2(
'Lower', jb, a( j, j ), lda, info )
222 CALL ctrsm(
'Right',
'Lower',
'Conjugate Transpose',
223 $
'Non-unit', n-j-jb+1, jb, cone, a( j, j ),
224 $ lda, a( j+jb, j ), lda )
226 CALL cherk(
'Lower',
'No Transpose', n-j-jb+1, jb,
227 $ -one, a( j+jb, j ), lda,
228 $ one, a( j+jb, j+jb ), lda )
subroutine cherk(UPLO, TRANS, N, K, ALPHA, A, LDA, BETA, C, LDC)
CHERK
subroutine xerbla(SRNAME, INFO)
XERBLA
subroutine ctrsm(SIDE, UPLO, TRANSA, DIAG, M, N, ALPHA, A, LDA, B, LDB)
CTRSM
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