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 xerbla(SRNAME, INFO)
XERBLA
subroutine dtrsm(SIDE, UPLO, TRANSA, DIAG, M, N, ALPHA, A, LDA, B, LDB)
DTRSM
subroutine dsyrk(UPLO, TRANS, N, K, ALPHA, A, LDA, BETA, C, LDC)
DSYRK
subroutine dpotrf(UPLO, N, A, LDA, INFO)
DPOTRF
subroutine dpftrf(TRANSR, UPLO, N, A, INFO)
DPFTRF