101 SUBROUTINE spotrf ( UPLO, N, A, LDA, INFO )
120 parameter( one = 1.0e+0 )
142 upper =
lsame( uplo,
'U' )
143 IF( .NOT.upper .AND. .NOT.
lsame( uplo,
'L' ) )
THEN
145 ELSE IF( n.LT.0 )
THEN
147 ELSE IF( lda.LT.max( 1, n ) )
THEN
151 CALL
xerbla(
'SPOTRF', -info )
162 nb =
ilaenv( 1,
'SPOTRF', uplo, n, -1, -1, -1 )
163 IF( nb.LE.1 .OR. nb.GE.n )
THEN
167 CALL
spotf2( uplo, n, a, lda, info )
181 jb = min( nb, n-j+1 )
183 CALL
spotf2(
'Upper', jb, a( j, j ), lda, info )
192 CALL
strsm(
'Left',
'Upper',
'Transpose',
'Non-unit',
193 $ jb, n-j-jb+1, one, a( j, j ), lda,
194 $ a( j, j+jb ), lda )
195 CALL
ssyrk(
'Upper',
'Transpose', n-j-jb+1, jb, -one,
197 $ one, a( j+jb, j+jb ), lda )
210 jb = min( nb, n-j+1 )
212 CALL
spotf2(
'Lower', jb, a( j, j ), lda, info )
221 CALL
strsm(
'Right',
'Lower',
'Transpose',
'Non-unit',
222 $ n-j-jb+1, jb, one, a( j, j ), lda,
223 $ a( j+jb, j ), lda )
225 CALL
ssyrk(
'Lower',
'No Transpose', n-j-jb+1, jb,
226 $ -one, a( j+jb, j ), lda,
227 $ one, a( j+jb, j+jb ), lda )