197 SUBROUTINE dpftrf( TRANSR, UPLO, N, A, INFO )
208 DOUBLE PRECISION A( 0: * )
214 PARAMETER ( one = 1.0d+0 )
217 LOGICAL LOWER, NISODD, NORMALTRANSR
235 normaltransr = lsame( transr,
'N' )
236 lower = lsame( uplo, 'l
' )
237.NOT..AND..NOT.
IF( NORMALTRANSR LSAME( TRANSR, 't
' ) ) THEN
239.NOT..AND..NOT.
ELSE IF( LOWER LSAME( UPLO, 'u
' ) ) THEN
241.LT.
ELSE IF( N0 ) THEN
245 CALL XERBLA( 'dpftrf', -INFO )
257.EQ.
IF( MOD( N, 2 )0 ) THEN
280 IF( NORMALTRANSR ) THEN
290 CALL DPOTRF( 'l
', N1, A( 0 ), N, INFO )
293 CALL DTRSM( 'r
', 'l
', 't
', 'n
', N2, N1, ONE, A( 0 ), N,
295 CALL DSYRK( 'u
', 'n
', N2, N1, -ONE, A( N1 ), N, ONE,
297 CALL DPOTRF( 'u
', N2, A( N ), N, INFO )
307 CALL DPOTRF( 'l
', N1, A( N2 ), N, INFO )
310 CALL DTRSM( 'l
', 'l
', 'n
', 'n', n1, n2, one, a( n2 ), n,
312 CALL dsyrk(
'U',
'T', n2, n1, -one, a( 0 ), n, one,
314 CALL dpotrf(
'U', n2, a( n1 ), n, info )
330 CALL dpotrf(
'U', n1, a( 0 ), n1, info )
333 CALL dtrsm(
'L',
'U',
'T',
'N', n1, n2, one, a( 0 ), n1,
335 CALL dsyrk(
'L',
'T', n2, n1, -one, a( n1*n1 ), n1, one,
337 CALL dpotrf(
'L', n2, a( 1 ), n1, info )
347 CALL dpotrf(
'U', n1, a( n2*n2 ), n2, info )
350 CALL dtrsm(
'R',
'U',
'N',
'N', n2, n1, one, a( n2*n2 ),
352 CALL dsyrk(
'L',
'N', n2, n1, -one, a( 0 ), n2, one,
354 CALL dpotrf(
'L', n2, a( n1*n2 ), n2, info )
366 IF( normaltransr )
THEN
376 CALL dpotrf(
'L', k, a( 1 ), n+1, info )
379 CALL dtrsm(
'R',
'L',
'T',
'N', k, k, one, a( 1 ), n+1,
381 CALL dsyrk(
'U',
'N', k, k, -one, a( k+1 ), n+1, one,
383 CALL dpotrf(
'U', k, a( 0 ), n+1, info )
393 CALL dpotrf(
'L', k, a( k+1 ), n+1, info )
396 CALL dtrsm(
'L',
'L',
'N',
'N', k, k, one, a( k+1 ),
398 CALL dsyrk(
'U',
'T', k, k, -one, a( 0 ), n+1, one,
400 CALL dpotrf(
'U', k, a( k ), n+1, info )
416 CALL dpotrf(
'U', k, a( 0+k ), k, info )
419 CALL dtrsm(
'L',
'U',
'T',
'N', k, k, one, a( k ), n1,
420 $ a( k*( k+1 ) ), k )
423 CALL dpotrf(
'L', k, a( 0 ), k, info )
433 CALL dpotrf(
'U', k, a( k*( k+1 ) ), k, info )
436 CALL dtrsm(
'R',
'U',
'N',
'N', k, k, one,
437 $ a( k*( k+1 ) ), k, a( 0 ), k )
438 CALL dsyrk(
'L',
'N', k, k, -one, a( 0 ), k, one,
subroutine dsyrk(uplo, trans, n, k, alpha, a, lda, beta, c, ldc)
DSYRK
subroutine dtrsm(side, uplo, transa, diag, m, n, alpha, a, lda, b, ldb)
DTRSM