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
subroutine ztrmm(SIDE, UPLO, TRANSA, DIAG, M, N, ALPHA, A, LDA, B, LDB)
ZTRMM
subroutine ztrtri(UPLO, DIAG, N, A, LDA, INFO)
ZTRTRI