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 )
subroutine ssyrk(UPLO, TRANS, N, K, ALPHA, A, LDA, BETA, C, LDC)
SSYRK
subroutine strsm(SIDE, UPLO, TRANSA, DIAG, M, N, ALPHA, A, LDA, B, LDB)
STRSM
subroutine spotrf(UPLO, N, A, LDA, INFO)
SPOTRF
subroutine spftrf(TRANSR, UPLO, N, A, INFO)
SPFTRF
subroutine xerbla(SRNAME, INFO)
XERBLA