222 SUBROUTINE ztftri( TRANSR, UPLO, DIAG, N, A, INFO )
230 CHARACTER transr, uplo, diag
241 parameter( cone = ( 1.0d+0, 0.0d+0 ) )
244 LOGICAL lower, nisodd, normaltransr
262 normaltransr =
lsame( transr,
'N' )
263 lower =
lsame( uplo,
'L' )
264 IF( .NOT.normaltransr .AND. .NOT.
lsame( transr,
'C' ) )
THEN
266 ELSE IF( .NOT.lower .AND. .NOT.
lsame( uplo,
'U' ) )
THEN
268 ELSE IF( .NOT.
lsame( diag,
'N' ) .AND. .NOT.
lsame( diag,
'U' ) )
271 ELSE IF( n.LT.0 )
THEN
275 CALL
xerbla(
'ZTFTRI', -info )
287 IF( mod( n, 2 ).EQ.0 )
THEN
311 IF( normaltransr )
THEN
321 CALL
ztrtri(
'L', diag, n1, a( 0 ), n, info )
324 CALL
ztrmm(
'R',
'L',
'N', diag, n2, n1, -cone, a( 0 ),
326 CALL
ztrtri(
'U', diag, n2, a( n ), n, info )
331 CALL
ztrmm(
'L',
'U',
'C', diag, n2, n1, cone, a( n ), n,
340 CALL
ztrtri(
'L', diag, n1, a( n2 ), n, info )
343 CALL
ztrmm(
'L',
'L',
'C', diag, n1, n2, -cone, a( n2 ),
345 CALL
ztrtri(
'U', diag, n2, a( n1 ), n, info )
350 CALL
ztrmm(
'R',
'U',
'N', diag, n1, n2, cone, a( n1 ),
364 CALL
ztrtri(
'U', diag, n1, a( 0 ), n1, info )
367 CALL
ztrmm(
'L',
'U',
'N', diag, n1, n2, -cone, a( 0 ),
368 $ n1, a( n1*n1 ), n1 )
369 CALL
ztrtri(
'L', diag, n2, a( 1 ), n1, info )
374 CALL
ztrmm(
'R',
'L',
'C', diag, n1, n2, cone, a( 1 ),
375 $ n1, a( n1*n1 ), n1 )
382 CALL
ztrtri(
'U', diag, n1, a( n2*n2 ), n2, info )
385 CALL
ztrmm(
'R',
'U',
'C', diag, n2, n1, -cone,
386 $ a( n2*n2 ), n2, a( 0 ), n2 )
387 CALL
ztrtri(
'L', diag, n2, a( n1*n2 ), n2, info )
392 CALL
ztrmm(
'L',
'L',
'N', diag, n2, n1, cone,
393 $ a( n1*n2 ), n2, a( 0 ), n2 )
402 IF( normaltransr )
THEN
412 CALL
ztrtri(
'L', diag, k, a( 1 ), n+1, info )
415 CALL
ztrmm(
'R',
'L',
'N', diag, k, k, -cone, a( 1 ),
416 $ n+1, a( k+1 ), n+1 )
417 CALL
ztrtri(
'U', diag, k, a( 0 ), n+1, info )
422 CALL
ztrmm(
'L',
'U',
'C', diag, k, k, cone, a( 0 ), n+1,
431 CALL
ztrtri(
'L', diag, k, a( k+1 ), n+1, info )
434 CALL
ztrmm(
'L',
'L',
'C', diag, k, k, -cone, a( k+1 ),
436 CALL
ztrtri(
'U', diag, k, a( k ), n+1, info )
441 CALL
ztrmm(
'R',
'U',
'N', diag, k, k, cone, a( k ), n+1,
454 CALL
ztrtri(
'U', diag, k, a( k ), k, info )
457 CALL
ztrmm(
'L',
'U',
'N', diag, k, k, -cone, a( k ), k,
458 $ a( k*( k+1 ) ), k )
459 CALL
ztrtri(
'L', diag, k, a( 0 ), k, info )
464 CALL
ztrmm(
'R',
'L',
'C', diag, k, k, cone, a( 0 ), k,
465 $ a( k*( k+1 ) ), k )
472 CALL
ztrtri(
'U', diag, k, a( k*( k+1 ) ), k, info )
475 CALL
ztrmm(
'R',
'U',
'C', diag, k, k, -cone,
476 $ a( k*( k+1 ) ), k, a( 0 ), k )
477 CALL
ztrtri(
'L', diag, k, a( k*k ), k, info )
482 CALL
ztrmm(
'L',
'L',
'N', diag, k, k, cone, a( k*k ), k,
subroutine ztftri(TRANSR, UPLO, DIAG, N, A, INFO)
ZTFTRI
subroutine xerbla(SRNAME, INFO)
XERBLA
logical function lsame(CA, CB)
LSAME
subroutine ztrtri(UPLO, DIAG, N, A, LDA, INFO)
ZTRTRI
subroutine ztrmm(SIDE, UPLO, TRANSA, DIAG, M, N, ALPHA, A, LDA, B, LDB)
ZTRMM