197 SUBROUTINE spftrf( TRANSR, UPLO, N, A, INFO )
204 CHARACTER TRANSR, UPLO
214 parameter( one = 1.0e+0 )
217 LOGICAL LOWER, NISODD, NORMALTRANSR
235 normaltransr = lsame( transr,
'N' )
236 lower = lsame( uplo,
'L' )
237 IF( .NOT.normaltransr .AND. .NOT.lsame( transr,
'T' ) )
THEN
239 ELSE IF( .NOT.lower .AND. .NOT.lsame( uplo,
'U' ) )
THEN
241 ELSE IF( n.LT.0 )
THEN
245 CALL xerbla(
'SPFTRF', -info )
257 IF( mod( n, 2 ).EQ.0 )
THEN
280 IF( normaltransr )
THEN
290 CALL spotrf(
'L', n1, a( 0 ), n, info )
293 CALL strsm(
'R',
'L',
'T',
'N', n2, n1, one, a( 0 ), n,
295 CALL ssyrk(
'U',
'N', n2, n1, -one, a( n1 ), n, one,
297 CALL spotrf(
'U', n2, a( n ), n, info )
307 CALL spotrf(
'L', n1, a( n2 ), n, info )
310 CALL strsm(
'L',
'L',
'N',
'N', n1, n2, one, a( n2 ), n,
312 CALL ssyrk(
'U',
'T', n2, n1, -one, a( 0 ), n, one,
314 CALL spotrf(
'U', n2, a( n1 ), n, info )
330 CALL spotrf(
'U', n1, a( 0 ), n1, info )
333 CALL strsm(
'L',
'U',
'T',
'N', n1, n2, one, a( 0 ), n1,
335 CALL ssyrk(
'L',
'T', n2, n1, -one, a( n1*n1 ), n1, one,
337 CALL spotrf(
'L', n2, a( 1 ), n1, info )
347 CALL spotrf(
'U', n1, a( n2*n2 ), n2, info )
350 CALL strsm(
'R',
'U',
'N',
'N', n2, n1, one, a( n2*n2 ),
352 CALL ssyrk(
'L',
'N', n2, n1, -one, a( 0 ), n2, one,
354 CALL spotrf(
'L', n2, a( n1*n2 ), n2, info )
366 IF( normaltransr )
THEN
376 CALL spotrf(
'L', k, a( 1 ), n+1, info )
379 CALL strsm(
'R',
'L',
'T',
'N', k, k, one, a( 1 ), n+1,
381 CALL ssyrk(
'U',
'N', k, k, -one, a( k+1 ), n+1, one,
383 CALL spotrf(
'U', k, a( 0 ), n+1, info )
393 CALL spotrf(
'L', k, a( k+1 ), n+1, info )
396 CALL strsm(
'L',
'L',
'N',
'N', k, k, one, a( k+1 ),
398 CALL ssyrk(
'U',
'T', k, k, -one, a( 0 ), n+1, one,
400 CALL spotrf(
'U', k, a( k ), n+1, info )
416 CALL spotrf(
'U', k, a( 0+k ), k, info )
419 CALL strsm(
'L',
'U',
'T',
'N', k, k, one, a( k ), n1,
420 $ a( k*( k+1 ) ), k )
421 CALL ssyrk(
'L',
'T', k, k, -one, a( k*( k+1 ) ), k, one,
423 CALL spotrf(
'L', k, a( 0 ), k, info )
433 CALL spotrf(
'U', k, a( k*( k+1 ) ), k, info )
436 CALL strsm(
'R',
'U',
'N',
'N', k, k, one,
437 $ a( k*( k+1 ) ), k, a( 0 ), k )
438 CALL ssyrk(
'L',
'N', k, k, -one, a( 0 ), k, one,
440 CALL spotrf(
'L', k, a( k*k ), k, info )
subroutine xerbla(srname, info)
subroutine ssyrk(uplo, trans, n, k, alpha, a, lda, beta, c, ldc)
SSYRK
subroutine spftrf(transr, uplo, n, a, info)
SPFTRF
subroutine spotrf(uplo, n, a, lda, info)
SPOTRF
subroutine strsm(side, uplo, transa, diag, m, n, alpha, a, lda, b, ldb)
STRSM