220 SUBROUTINE ztftri( TRANSR, UPLO, DIAG, N, A, INFO )
227 CHARACTER TRANSR, UPLO, DIAG
238 parameter( cone = ( 1.0d+0, 0.0d+0 ) )
241 LOGICAL LOWER, NISODD, NORMALTRANSR
259 normaltransr = lsame( transr,
'N' )
260 lower = lsame( uplo,
'L' )
261 IF( .NOT.normaltransr .AND. .NOT.lsame( transr,
'C' ) )
THEN
263 ELSE IF( .NOT.lower .AND. .NOT.lsame( uplo,
'U' ) )
THEN
265 ELSE IF( .NOT.lsame( diag,
'N' ) .AND. .NOT.lsame( diag,
'U' ) )
268 ELSE IF( n.LT.0 )
THEN
272 CALL xerbla(
'ZTFTRI', -info )
284 IF( mod( n, 2 ).EQ.0 )
THEN
308 IF( normaltransr )
THEN
318 CALL ztrtri(
'L', diag, n1, a( 0 ), n, info )
321 CALL ztrmm(
'R',
'L',
'N', diag, n2, n1, -cone, a( 0 ),
323 CALL ztrtri(
'U', diag, n2, a( n ), n, info )
328 CALL ztrmm(
'L',
'U',
'C', diag, n2, n1, cone, a( n ), n,
337 CALL ztrtri(
'L', diag, n1, a( n2 ), n, info )
340 CALL ztrmm(
'L',
'L',
'C', diag, n1, n2, -cone, a( n2 ),
342 CALL ztrtri(
'U', diag, n2, a( n1 ), n, info )
347 CALL ztrmm(
'R',
'U',
'N', diag, n1, n2, cone, a( n1 ),
361 CALL ztrtri(
'U', diag, n1, a( 0 ), n1, info )
364 CALL ztrmm(
'L',
'U',
'N', diag, n1, n2, -cone, a( 0 ),
365 $ n1, a( n1*n1 ), n1 )
366 CALL ztrtri(
'L', diag, n2, a( 1 ), n1, info )
371 CALL ztrmm(
'R',
'L',
'C', diag, n1, n2, cone, a( 1 ),
372 $ n1, a( n1*n1 ), n1 )
379 CALL ztrtri(
'U', diag, n1, a( n2*n2 ), n2, info )
382 CALL ztrmm(
'R',
'U',
'C', diag, n2, n1, -cone,
383 $ a( n2*n2 ), n2, a( 0 ), n2 )
384 CALL ztrtri(
'L', diag, n2, a( n1*n2 ), n2, info )
389 CALL ztrmm(
'L',
'L',
'N', diag, n2, n1, cone,
390 $ a( n1*n2 ), n2, a( 0 ), n2 )
399 IF( normaltransr )
THEN
409 CALL ztrtri(
'L', diag, k, a( 1 ), n+1, info )
412 CALL ztrmm(
'R',
'L',
'N', diag, k, k, -cone, a( 1 ),
413 $ n+1, a( k+1 ), n+1 )
414 CALL ztrtri(
'U', diag, k, a( 0 ), n+1, info )
419 CALL ztrmm(
'L',
'U',
'C', diag, k, k, cone, a( 0 ), n+1,
428 CALL ztrtri(
'L', diag, k, a( k+1 ), n+1, info )
431 CALL ztrmm(
'L',
'L',
'C', diag, k, k, -cone, a( k+1 ),
433 CALL ztrtri(
'U', diag, k, a( k ), n+1, info )
438 CALL ztrmm(
'R',
'U',
'N', diag, k, k, cone, a( k ), n+1,
451 CALL ztrtri(
'U', diag, k, a( k ), k, info )
454 CALL ztrmm(
'L',
'U',
'N', diag, k, k, -cone, a( k ), k,
455 $ a( k*( k+1 ) ), k )
456 CALL ztrtri(
'L', diag, k, a( 0 ), k, info )
461 CALL ztrmm(
'R',
'L',
'C', diag, k, k, cone, a( 0 ), k,
462 $ a( k*( k+1 ) ), k )
469 CALL ztrtri(
'U', diag, k, a( k*( k+1 ) ), k, info )
472 CALL ztrmm(
'R',
'U',
'C', diag, k, k, -cone,
473 $ a( k*( k+1 ) ), k, a( 0 ), k )
474 CALL ztrtri(
'L', diag, k, a( k*k ), k, info )
479 CALL ztrmm(
'L',
'L',
'N', diag, k, k, cone, a( k*k ), k,
subroutine xerbla(srname, info)
subroutine ztftri(transr, uplo, diag, n, a, info)
ZTFTRI
subroutine ztrmm(side, uplo, transa, diag, m, n, alpha, a, lda, b, ldb)
ZTRMM
subroutine ztrtri(uplo, diag, n, a, lda, info)
ZTRTRI