195 SUBROUTINE spftrf( TRANSR, UPLO, N, A, INFO )
202 CHARACTER TRANSR, UPLO
212 parameter( one = 1.0e+0 )
215 LOGICAL LOWER, NISODD, NORMALTRANSR
233 normaltransr = lsame( transr,
'N' )
234 lower = lsame( uplo,
'L' )
235 IF( .NOT.normaltransr .AND. .NOT.lsame( transr,
'T' ) )
THEN
237 ELSE IF( .NOT.lower .AND. .NOT.lsame( uplo,
'U' ) )
THEN
239 ELSE IF( n.LT.0 )
THEN
243 CALL xerbla(
'SPFTRF', -info )
255 IF( mod( n, 2 ).EQ.0 )
THEN
278 IF( normaltransr )
THEN
288 CALL spotrf(
'L', n1, a( 0 ), n, info )
291 CALL strsm(
'R',
'L',
'T',
'N', n2, n1, one, a( 0 ),
294 CALL ssyrk(
'U',
'N', n2, n1, -one, a( n1 ), n, one,
296 CALL spotrf(
'U', n2, a( n ), n, info )
306 CALL spotrf(
'L', n1, a( n2 ), n, info )
309 CALL strsm(
'L',
'L',
'N',
'N', n1, n2, one, a( n2 ),
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 ),
336 CALL ssyrk(
'L',
'T', n2, n1, -one, a( n1*n1 ), n1,
339 CALL spotrf(
'L', n2, a( 1 ), n1, info )
349 CALL spotrf(
'U', n1, a( n2*n2 ), n2, info )
352 CALL strsm(
'R',
'U',
'N',
'N', n2, n1, one,
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 ),
385 CALL ssyrk(
'U',
'N', k, k, -one, a( k+1 ), n+1, one,
387 CALL spotrf(
'U', k, a( 0 ), n+1, info )
397 CALL spotrf(
'L', k, a( k+1 ), n+1, info )
400 CALL strsm(
'L',
'L',
'N',
'N', k, k, one, a( k+1 ),
402 CALL ssyrk(
'U',
'T', k, k, -one, a( 0 ), n+1, one,
404 CALL spotrf(
'U', k, a( k ), n+1, info )
420 CALL spotrf(
'U', k, a( 0+k ), k, info )
423 CALL strsm(
'L',
'U',
'T',
'N', k, k, one, a( k ), n1,
424 $ a( k*( k+1 ) ), k )
425 CALL ssyrk(
'L',
'T', k, k, -one, a( k*( k+1 ) ), k,
428 CALL spotrf(
'L', k, a( 0 ), k, info )
438 CALL spotrf(
'U', k, a( k*( k+1 ) ), k, info )
441 CALL strsm(
'R',
'U',
'N',
'N', k, k, one,
442 $ a( k*( k+1 ) ), k, a( 0 ), k )
443 CALL ssyrk(
'L',
'N', k, k, -one, a( 0 ), k, one,
445 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