222 SUBROUTINE ctftri( TRANSR, UPLO, DIAG, N, A, INFO )
230 CHARACTER transr, uplo, diag
241 parameter( cone = ( 1.0e+0, 0.0e+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(
'CTFTRI', -info )
287 IF( mod( n, 2 ).EQ.0 )
THEN
311 IF( normaltransr )
THEN
321 CALL
ctrtri(
'L', diag, n1, a( 0 ), n, info )
324 CALL
ctrmm(
'R',
'L',
'N', diag, n2, n1, -cone, a( 0 ),
326 CALL
ctrtri(
'U', diag, n2, a( n ), n, info )
331 CALL
ctrmm(
'L',
'U',
'C', diag, n2, n1, cone, a( n ), n,
340 CALL
ctrtri(
'L', diag, n1, a( n2 ), n, info )
343 CALL
ctrmm(
'L',
'L',
'C', diag, n1, n2, -cone, a( n2 ),
345 CALL
ctrtri(
'U', diag, n2, a( n1 ), n, info )
350 CALL
ctrmm(
'R',
'U',
'N', diag, n1, n2, cone, a( n1 ),
364 CALL
ctrtri(
'U', diag, n1, a( 0 ), n1, info )
367 CALL
ctrmm(
'L',
'U',
'N', diag, n1, n2, -cone, a( 0 ),
368 $ n1, a( n1*n1 ), n1 )
369 CALL
ctrtri(
'L', diag, n2, a( 1 ), n1, info )
374 CALL
ctrmm(
'R',
'L',
'C', diag, n1, n2, cone, a( 1 ),
375 $ n1, a( n1*n1 ), n1 )
382 CALL
ctrtri(
'U', diag, n1, a( n2*n2 ), n2, info )
385 CALL
ctrmm(
'R',
'U',
'C', diag, n2, n1, -cone,
386 $ a( n2*n2 ), n2, a( 0 ), n2 )
387 CALL
ctrtri(
'L', diag, n2, a( n1*n2 ), n2, info )
392 CALL
ctrmm(
'L',
'L',
'N', diag, n2, n1, cone,
393 $ a( n1*n2 ), n2, a( 0 ), n2 )
402 IF( normaltransr )
THEN
412 CALL
ctrtri(
'L', diag, k, a( 1 ), n+1, info )
415 CALL
ctrmm(
'R',
'L',
'N', diag, k, k, -cone, a( 1 ),
416 $ n+1, a( k+1 ), n+1 )
417 CALL
ctrtri(
'U', diag, k, a( 0 ), n+1, info )
422 CALL
ctrmm(
'L',
'U',
'C', diag, k, k, cone, a( 0 ), n+1,
431 CALL
ctrtri(
'L', diag, k, a( k+1 ), n+1, info )
434 CALL
ctrmm(
'L',
'L',
'C', diag, k, k, -cone, a( k+1 ),
436 CALL
ctrtri(
'U', diag, k, a( k ), n+1, info )
441 CALL
ctrmm(
'R',
'U',
'N', diag, k, k, cone, a( k ), n+1,
454 CALL
ctrtri(
'U', diag, k, a( k ), k, info )
457 CALL
ctrmm(
'L',
'U',
'N', diag, k, k, -cone, a( k ), k,
458 $ a( k*( k+1 ) ), k )
459 CALL
ctrtri(
'L', diag, k, a( 0 ), k, info )
464 CALL
ctrmm(
'R',
'L',
'C', diag, k, k, cone, a( 0 ), k,
465 $ a( k*( k+1 ) ), k )
472 CALL
ctrtri(
'U', diag, k, a( k*( k+1 ) ), k, info )
475 CALL
ctrmm(
'R',
'U',
'C', diag, k, k, -cone,
476 $ a( k*( k+1 ) ), k, a( 0 ), k )
477 CALL
ctrtri(
'L', diag, k, a( k*k ), k, info )
482 CALL
ctrmm(
'L',
'L',
'N', diag, k, k, cone, a( k*k ), k,
LOGICAL function lsame(CA, CB)
LSAME
subroutine ctrtri(UPLO, DIAG, N, A, LDA, INFO)
CTRTRI
subroutine ctftri(TRANSR, UPLO, DIAG, N, A, INFO)
CTFTRI
subroutine xerbla(SRNAME, INFO)
XERBLA
subroutine ctrmm(SIDE, UPLO, TRANSA, DIAG, M, N, ALPHA, A, LDA, B, LDB)
CTRMM