199 SUBROUTINE spftrf( TRANSR, UPLO, N, A, INFO )
207 CHARACTER transr, uplo
217 parameter( one = 1.0e+0 )
220 LOGICAL lower, nisodd, normaltransr
238 normaltransr =
lsame( transr,
'N' )
239 lower =
lsame( uplo,
'L' )
240 IF( .NOT.normaltransr .AND. .NOT.
lsame( transr,
'T' ) )
THEN
242 ELSE IF( .NOT.lower .AND. .NOT.
lsame( uplo,
'U' ) )
THEN
244 ELSE IF( n.LT.0 )
THEN
248 CALL
xerbla(
'SPFTRF', -info )
260 IF( mod( n, 2 ).EQ.0 )
THEN
283 IF( normaltransr )
THEN
293 CALL
spotrf(
'L', n1, a( 0 ), n, info )
296 CALL
strsm(
'R',
'L',
'T',
'N', n2, n1, one, a( 0 ), n,
298 CALL
ssyrk(
'U',
'N', n2, n1, -one, a( n1 ), n, one,
300 CALL
spotrf(
'U', n2, a( n ), n, info )
310 CALL
spotrf(
'L', n1, a( n2 ), n, info )
313 CALL
strsm(
'L',
'L',
'N',
'N', n1, n2, one, a( n2 ), n,
315 CALL
ssyrk(
'U',
'T', n2, n1, -one, a( 0 ), n, one,
317 CALL
spotrf(
'U', n2, a( n1 ), n, info )
333 CALL
spotrf(
'U', n1, a( 0 ), n1, info )
336 CALL
strsm(
'L',
'U',
'T',
'N', n1, n2, one, a( 0 ), n1,
338 CALL
ssyrk(
'L',
'T', n2, n1, -one, a( n1*n1 ), n1, one,
340 CALL
spotrf(
'L', n2, a( 1 ), n1, info )
350 CALL
spotrf(
'U', n1, a( n2*n2 ), n2, info )
353 CALL
strsm(
'R',
'U',
'N',
'N', n2, n1, one, a( n2*n2 ),
355 CALL
ssyrk(
'L',
'N', n2, n1, -one, a( 0 ), n2, one,
357 CALL
spotrf(
'L', n2, a( n1*n2 ), n2, info )
369 IF( normaltransr )
THEN
379 CALL
spotrf(
'L', k, a( 1 ), n+1, info )
382 CALL
strsm(
'R',
'L',
'T',
'N', k, k, one, a( 1 ), n+1,
384 CALL
ssyrk(
'U',
'N', k, k, -one, a( k+1 ), n+1, one,
386 CALL
spotrf(
'U', k, a( 0 ), n+1, info )
396 CALL
spotrf(
'L', k, a( k+1 ), n+1, info )
399 CALL
strsm(
'L',
'L',
'N',
'N', k, k, one, a( k+1 ),
401 CALL
ssyrk(
'U',
'T', k, k, -one, a( 0 ), n+1, one,
403 CALL
spotrf(
'U', k, a( k ), n+1, info )
419 CALL
spotrf(
'U', k, a( 0+k ), k, info )
422 CALL
strsm(
'L',
'U',
'T',
'N', k, k, one, a( k ), n1,
423 $ a( k*( k+1 ) ), k )
424 CALL
ssyrk(
'L',
'T', k, k, -one, a( k*( k+1 ) ), k, one,
426 CALL
spotrf(
'L', k, a( 0 ), k, info )
436 CALL
spotrf(
'U', k, a( k*( k+1 ) ), k, info )
439 CALL
strsm(
'R',
'U',
'N',
'N', k, k, one,
440 $ a( k*( k+1 ) ), k, a( 0 ), k )
441 CALL
ssyrk(
'L',
'N', k, k, -one, a( 0 ), k, one,
443 CALL
spotrf(
'L', k, a( k*k ), k, info )
LOGICAL function lsame(CA, CB)
LSAME
subroutine ssyrk(UPLO, TRANS, N, K, ALPHA, A, LDA, BETA, C, LDC)
SSYRK
subroutine xerbla(SRNAME, INFO)
XERBLA
subroutine spftrf(TRANSR, UPLO, N, A, INFO)
SPFTRF
subroutine strsm(SIDE, UPLO, TRANSA, DIAG, M, N, ALPHA, A, LDA, B, LDB)
STRSM
subroutine spotrf(UPLO, N, A, LDA, INFO)
SPOTRF