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 xerbla(srname, info)
subroutine dsyrk(uplo, trans, n, k, alpha, a, lda, beta, c, ldc)
DSYRK
subroutine dpftrf(transr, uplo, n, a, info)
DPFTRF
subroutine dpotrf(uplo, n, a, lda, info)
DPOTRF
subroutine dtrsm(side, uplo, transa, diag, m, n, alpha, a, lda, b, ldb)
DTRSM