101 SUBROUTINE spotrf ( UPLO, N, A, LDA, INFO )
119 parameter( one = 1.0e+0 )
128 EXTERNAL lsame, ilaenv
141 upper = lsame( uplo,
'U' )
142 IF( .NOT.upper .AND. .NOT.lsame( uplo,
'L' ) )
THEN
144 ELSE IF( n.LT.0 )
THEN
146 ELSE IF( lda.LT.max( 1, n ) )
THEN
150 CALL xerbla(
'SPOTRF', -info )
161 nb = ilaenv( 1,
'SPOTRF', uplo, n, -1, -1, -1 )
162 IF( nb.LE.1 .OR. nb.GE.n )
THEN
166 CALL spotf2( uplo, n, a, lda, info )
177 jb = min( nb, n-j+1 )
181 CALL strsm(
'Left',
'Upper',
'Transpose',
'Non-unit',
182 $ j-1, jb, one, a( 1, 1 ), lda,
185 CALL ssyrk(
'Upper',
'Transpose', jb, j-1, -one,
187 $ one, a( j, j ), lda )
192 CALL spotf2(
'Upper', jb, a( j, j ), lda, info )
204 jb = min( nb, n-j+1 )
208 CALL strsm(
'Right',
'Lower',
'Transpose',
'Non-unit',
209 $ jb, j-1, one, a( 1, 1 ), lda,
212 CALL ssyrk(
'Lower',
'No Transpose', jb, j-1,
213 $ -one, a( j, 1 ), lda,
214 $ one, a( j, j ), lda )
219 CALL spotf2(
'Lower', jb, a( j, j ), lda, info )
subroutine xerbla(SRNAME, INFO)
XERBLA
subroutine spotf2(UPLO, N, A, LDA, INFO)
SPOTF2 computes the Cholesky factorization of a symmetric/Hermitian positive definite matrix (unblock...
subroutine spotrf(UPLO, N, A, LDA, INFO)
SPOTRF
subroutine strsm(SIDE, UPLO, TRANSA, DIAG, M, N, ALPHA, A, LDA, B, LDB)
STRSM
subroutine ssyrk(UPLO, TRANS, N, K, ALPHA, A, LDA, BETA, C, LDC)
SSYRK
subroutine sgemm(TRANSA, TRANSB, M, N, K, ALPHA, A, LDA, B, LDB, BETA, C, LDC)
SGEMM