199 SUBROUTINE dpftrf( TRANSR, UPLO, N, A, INFO )
207 CHARACTER TRANSR, UPLO
211 DOUBLE PRECISION A( 0: * )
217 parameter ( one = 1.0d+0 )
220 LOGICAL LOWER, NISODD, NORMALTRANSR
238 normaltransr = lsame( transr,
'N' )
239 lower = lsame( uplo,
'L' )
240 IF( .NOT.normaltransr .AND. .NOT.lsame( transr,
'T' ) )
THEN
242 ELSE IF( .NOT.lower .AND. .NOT.lsame( uplo,
'U' ) )
THEN
244 ELSE IF( n.LT.0 )
THEN
248 CALL xerbla(
'DPFTRF', -info )
260 IF( mod( n, 2 ).EQ.0 )
THEN
283 IF( normaltransr )
THEN
293 CALL dpotrf(
'L', n1, a( 0 ), n, info )
296 CALL dtrsm(
'R',
'L',
'T',
'N', n2, n1, one, a( 0 ), n,
298 CALL dsyrk(
'U',
'N', n2, n1, -one, a( n1 ), n, one,
300 CALL dpotrf(
'U', n2, a( n ), n, info )
310 CALL dpotrf(
'L', n1, a( n2 ), n, info )
313 CALL dtrsm(
'L',
'L',
'N',
'N', n1, n2, one, a( n2 ), n,
315 CALL dsyrk(
'U',
'T', n2, n1, -one, a( 0 ), n, one,
317 CALL dpotrf(
'U', n2, a( n1 ), n, info )
333 CALL dpotrf(
'U', n1, a( 0 ), n1, info )
336 CALL dtrsm(
'L',
'U',
'T',
'N', n1, n2, one, a( 0 ), n1,
338 CALL dsyrk(
'L',
'T', n2, n1, -one, a( n1*n1 ), n1, one,
340 CALL dpotrf(
'L', n2, a( 1 ), n1, info )
350 CALL dpotrf(
'U', n1, a( n2*n2 ), n2, info )
353 CALL dtrsm(
'R',
'U',
'N',
'N', n2, n1, one, a( n2*n2 ),
355 CALL dsyrk(
'L',
'N', n2, n1, -one, a( 0 ), n2, one,
357 CALL dpotrf(
'L', n2, a( n1*n2 ), n2, info )
369 IF( normaltransr )
THEN
379 CALL dpotrf(
'L', k, a( 1 ), n+1, info )
382 CALL dtrsm(
'R',
'L',
'T',
'N', k, k, one, a( 1 ), n+1,
384 CALL dsyrk(
'U',
'N', k, k, -one, a( k+1 ), n+1, one,
386 CALL dpotrf(
'U', k, a( 0 ), n+1, info )
396 CALL dpotrf(
'L', k, a( k+1 ), n+1, info )
399 CALL dtrsm(
'L',
'L',
'N',
'N', k, k, one, a( k+1 ),
401 CALL dsyrk(
'U',
'T', k, k, -one, a( 0 ), n+1, one,
403 CALL dpotrf(
'U', k, a( k ), n+1, info )
419 CALL dpotrf(
'U', k, a( 0+k ), k, info )
422 CALL dtrsm(
'L',
'U',
'T',
'N', k, k, one, a( k ), n1,
423 $ a( k*( k+1 ) ), k )
424 CALL dsyrk(
'L',
'T', k, k, -one, a( k*( k+1 ) ), k, one,
426 CALL dpotrf(
'L', k, a( 0 ), k, info )
436 CALL dpotrf(
'U', k, a( k*( k+1 ) ), k, info )
439 CALL dtrsm(
'R',
'U',
'N',
'N', k, k, one,
440 $ a( k*( k+1 ) ), k, a( 0 ), k )
441 CALL dsyrk(
'L',
'N', k, k, -one, a( 0 ), k, one,
443 CALL dpotrf(
'L', k, a( k*k ), k, info )
subroutine dtrsm(SIDE, UPLO, TRANSA, DIAG, M, N, ALPHA, A, LDA, B, LDB)
DTRSM
subroutine dpotrf(UPLO, N, A, LDA, INFO)
DPOTRF
subroutine dsyrk(UPLO, TRANS, N, K, ALPHA, A, LDA, BETA, C, LDC)
DSYRK
subroutine xerbla(SRNAME, INFO)
XERBLA
subroutine dpftrf(TRANSR, UPLO, N, A, INFO)
DPFTRF