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 )