192 SUBROUTINE dpftri( TRANSR, UPLO, N, A, INFO )
200 CHARACTER transr, uplo
203 DOUBLE PRECISION a( 0: * )
210 parameter( one = 1.0d+0 )
213 LOGICAL lower, nisodd, normaltransr
231 normaltransr =
lsame( transr,
'N' )
232 lower =
lsame( uplo,
'L' )
233 IF( .NOT.normaltransr .AND. .NOT.
lsame( transr,
'T' ) )
THEN
235 ELSE IF( .NOT.lower .AND. .NOT.
lsame( uplo,
'U' ) )
THEN
237 ELSE IF( n.LT.0 )
THEN
241 CALL
xerbla(
'DPFTRI', -info )
252 CALL
dtftri( transr, uplo,
'N', n, a, info )
259 IF( mod( n, 2 ).EQ.0 )
THEN
283 IF( normaltransr )
THEN
293 CALL
dlauum(
'L', n1, a( 0 ), n, info )
294 CALL
dsyrk(
'L',
'T', n1, n2, one, a( n1 ), n, one,
296 CALL
dtrmm(
'L',
'U',
'N',
'N', n2, n1, one, a( n ), n,
298 CALL
dlauum(
'U', n2, a( n ), n, info )
306 CALL
dlauum(
'L', n1, a( n2 ), n, info )
307 CALL
dsyrk(
'L',
'N', n1, n2, one, a( 0 ), n, one,
309 CALL
dtrmm(
'R',
'U',
'T',
'N', n1, n2, one, a( n1 ), n,
311 CALL
dlauum(
'U', n2, a( n1 ), n, info )
324 CALL
dlauum(
'U', n1, a( 0 ), n1, info )
325 CALL
dsyrk(
'U',
'N', n1, n2, one, a( n1*n1 ), n1, one,
327 CALL
dtrmm(
'R',
'L',
'N',
'N', n1, n2, one, a( 1 ), n1,
329 CALL
dlauum(
'L', n2, a( 1 ), n1, info )
336 CALL
dlauum(
'U', n1, a( n2*n2 ), n2, info )
337 CALL
dsyrk(
'U',
'T', n1, n2, one, a( 0 ), n2, one,
339 CALL
dtrmm(
'L',
'L',
'T',
'N', n2, n1, one, a( n1*n2 ),
341 CALL
dlauum(
'L', n2, a( n1*n2 ), n2, info )
351 IF( normaltransr )
THEN
361 CALL
dlauum(
'L', k, a( 1 ), n+1, info )
362 CALL
dsyrk(
'L',
'T', k, k, one, a( k+1 ), n+1, one,
364 CALL
dtrmm(
'L',
'U',
'N',
'N', k, k, one, a( 0 ), n+1,
366 CALL
dlauum(
'U', k, a( 0 ), n+1, info )
374 CALL
dlauum(
'L', k, a( k+1 ), n+1, info )
375 CALL
dsyrk(
'L',
'N', k, k, one, a( 0 ), n+1, one,
377 CALL
dtrmm(
'R',
'U',
'T',
'N', k, k, one, a( k ), n+1,
379 CALL
dlauum(
'U', k, a( k ), n+1, info )
393 CALL
dlauum(
'U', k, a( k ), k, info )
394 CALL
dsyrk(
'U',
'N', k, k, one, a( k*( k+1 ) ), k, one,
396 CALL
dtrmm(
'R',
'L',
'N',
'N', k, k, one, a( 0 ), k,
397 $ a( k*( k+1 ) ), k )
398 CALL
dlauum(
'L', k, a( 0 ), k, info )
406 CALL
dlauum(
'U', k, a( k*( k+1 ) ), k, info )
407 CALL
dsyrk(
'U',
'T', k, k, one, a( 0 ), k, one,
408 $ a( k*( k+1 ) ), k )
409 CALL
dtrmm(
'L',
'L',
'T',
'N', k, k, one, a( k*k ), k,
411 CALL
dlauum(
'L', k, a( k*k ), k, info )