200 SUBROUTINE dtftri( TRANSR, UPLO, DIAG, N, A, INFO )
207 CHARACTER TRANSR, UPLO, DIAG
211 DOUBLE PRECISION A( 0: * )
218 parameter( one = 1.0d+0 )
221 LOGICAL LOWER, NISODD, NORMALTRANSR
239 normaltransr = lsame( transr,
'N' )
240 lower = lsame( uplo,
'L' )
241 IF( .NOT.normaltransr .AND. .NOT.lsame( transr,
'T' ) )
THEN
243 ELSE IF( .NOT.lower .AND. .NOT.lsame( uplo,
'U' ) )
THEN
245 ELSE IF( .NOT.lsame( diag,
'N' ) .AND. .NOT.lsame( diag,
'U' ) )
248 ELSE IF( n.LT.0 )
THEN
252 CALL xerbla(
'DTFTRI', -info )
264 IF( mod( n, 2 ).EQ.0 )
THEN
288 IF( normaltransr )
THEN
298 CALL dtrtri(
'L', diag, n1, a( 0 ), n, info )
301 CALL dtrmm(
'R',
'L',
'N', diag, n2, n1, -one, a( 0 ),
303 CALL dtrtri(
'U', diag, n2, a( n ), n, info )
308 CALL dtrmm(
'L',
'U',
'T', diag, n2, n1, one, a( n ), n,
317 CALL dtrtri(
'L', diag, n1, a( n2 ), n, info )
322 CALL dtrtri(
'U', diag, n2, a( n1 ), n, info )
327 CALL dtrmm(
'R',
'U',
'N', diag, n1, n2, one, a( n1 ),
341 CALL dtrtri(
'U', diag, n1, a( 0 ), n1, info )
344 CALL dtrmm(
'L',
'U',
'N', diag, n1, n2, -one, a( 0 ),
345 $ n1, a( n1*n1 ), n1 )
346 CALL dtrtri(
'L', diag, n2, a( 1 ), n1, info )
351 CALL dtrmm(
'R',
'L',
'T', diag, n1, n2, one, a( 1 ),
352 $ n1, a( n1*n1 ), n1 )
359 CALL dtrtri(
'U', diag, n1, a( n2*n2 ), n2, info )
362 CALL dtrmm(
'R',
'U',
'T', diag, n2, n1
363 $ a( n2*n2 ), n2, a( 0 ), n2 )
364 CALL dtrtri(
'L', diag, n2, a( n1*n2 ), n2, info )
369 CALL dtrmm(
'L',
'L',
'N', diag, n2, n1, one,
370 $ a( n1*n2 ), n2, a( 0 ), n2 )
379 IF( normaltransr )
THEN
389 CALL dtrtri(
'L', diag, k, a( 1 ), n+1, info )
392 CALL dtrmm(
'R',
'L',
'N', diag, k, k, -one, a( 1 ),
393 $ n+1, a( k+1 ), n+1 )
394 CALL dtrtri(
'U', diag, k, a( 0 ), n+1, info )
399 CALL dtrmm(
'L',
'U',
'T', diag, k, k, one, a( 0 ), n+1,
408 CALL dtrtri(
'L', diag, k, a( k+1 ), n+1, info )
411 CALL dtrmm(
'L',
'L',
'T', diag, k, k, -one, a( k+1 ),
413 CALL dtrtri(
'U', diag, k, a( k ), n+1, info )
418 CALL dtrmm(
'R',
'U',
'N', diag, k, k, one, a( k ), n+1,
431 CALL dtrtri(
'U', diag, k, a( k ), k, info )
434 CALL dtrmm(
'L',
'U', 'n
', DIAG, K, K, -ONE, A( K ), K,
435 $ A( K*( K+1 ) ), K )
436 CALL DTRTRI( 'l
', DIAG, K, A( 0 ), K, INFO )
441 CALL DTRMM( 'r
', 'l
', 't
', DIAG, K, K, ONE, A( 0 ), K,
442 $ A( K*( K+1 ) ), K )
449 CALL DTRTRI( 'u
', DIAG, K, A( K*( K+1 ) ), K, INFO )
452 CALL DTRMM( 'r
', 'u
', 't
', DIAG, K, K, -ONE,
453 $ A( K*( K+1 ) ), K, A( 0 ), K )
454 CALL DTRTRI( 'l
', DIAG, K, A( K*K ), K, INFO )
459 CALL DTRMM( 'l
', 'l
', 'n
', DIAG, K, K, ONE, A( K*K ), K,