197 SUBROUTINE dpftrf( TRANSR, UPLO, N, A, INFO )
204 CHARACTER TRANSR, UPLO
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 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(
'DPFTRF', -info )
257 IF( mod( n, 2 ).EQ.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 )
421 CALL DSYRK( 'l
', 't
', K, K, -ONE, A( K*( K+1 ) ), K, ONE,
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,
440 CALL DPOTRF( 'l
', K, A( K*K ), K, INFO )
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