108 SUBROUTINE spotrf( UPLO, N, A, LDA, INFO )
127 parameter( one = 1.0e+0 )
149 upper =
lsame( uplo,
'U' )
150 IF( .NOT.upper .AND. .NOT.
lsame( uplo,
'L' ) )
THEN
152 ELSE IF( n.LT.0 )
THEN
154 ELSE IF( lda.LT.max( 1, n ) )
THEN
158 CALL
xerbla(
'SPOTRF', -info )
169 nb =
ilaenv( 1,
'SPOTRF', uplo, n, -1, -1, -1 )
170 IF( nb.LE.1 .OR. nb.GE.n )
THEN
174 CALL
spotf2( uplo, n, a, lda, info )
188 jb = min( nb, n-
j+1 )
189 CALL
ssyrk(
'Upper',
'Transpose', jb,
j-1, -one,
190 $ a( 1,
j ), lda, one, a(
j,
j ), lda )
191 CALL
spotf2(
'Upper', jb, a(
j,
j ), lda, info )
198 CALL
sgemm(
'Transpose',
'No transpose', jb, n-
j-jb+1,
199 $
j-1, -one, a( 1,
j ), lda, a( 1,
j+jb ),
200 $ lda, one, a(
j,
j+jb ), lda )
201 CALL
strsm(
'Left',
'Upper',
'Transpose',
'Non-unit',
202 $ jb, n-
j-jb+1, one, a(
j,
j ), lda,
203 $ a(
j,
j+jb ), lda )
216 jb = min( nb, n-
j+1 )
217 CALL
ssyrk(
'Lower',
'No transpose', jb,
j-1, -one,
218 $ a(
j, 1 ), lda, one, a(
j,
j ), lda )
219 CALL
spotf2(
'Lower', jb, a(
j,
j ), lda, info )
226 CALL
sgemm(
'No transpose',
'Transpose', n-
j-jb+1, jb,
227 $
j-1, -one, a(
j+jb, 1 ), lda, a(
j, 1 ),
228 $ lda, one, a(
j+jb,
j ), lda )
229 CALL
strsm(
'Right',
'Lower',
'Transpose',
'Non-unit',
230 $ n-
j-jb+1, jb, one, a(
j,
j ), lda,
231 $ a(
j+jb,
j ), lda )
subroutine spotf2(UPLO, N, A, LDA, INFO)
SPOTF2 computes the Cholesky factorization of a symmetric/Hermitian positive definite matrix (unblock...
subroutine ssyrk(UPLO, TRANS, N, K, ALPHA, A, LDA, BETA, C, LDC)
SSYRK
subroutine xerbla(SRNAME, INFO)
XERBLA
logical function lsame(CA, CB)
LSAME
subroutine sgemm(TRANSA, TRANSB, M, N, K, ALPHA, A, LDA, B, LDB, BETA, C, LDC)
SGEMM
set ue cd $ADTTMP cat<< EOF > tmp f Program LinearEquations Implicit none Real j
integer function ilaenv(ISPEC, NAME, OPTS, N1, N2, N3, N4)
subroutine strsm(SIDE, UPLO, TRANSA, DIAG, M, N, ALPHA, A, LDA, B, LDB)
STRSM
subroutine spotrf(UPLO, N, A, LDA, INFO)
SPOTRF