211 SUBROUTINE zpftri( TRANSR, UPLO, N, A, INFO )
218 CHARACTER TRANSR, UPLO
229 parameter( one = 1.d0, cone = ( 1.d0, 0.d0 ) )
232 LOGICAL LOWER, NISODD, NORMALTRANSR
250 normaltransr = lsame( transr,
'N' )
251 lower = lsame( uplo,
'L' )
252 IF( .NOT.normaltransr .AND. .NOT.lsame( transr,
'C' ) )
THEN
254 ELSE IF( .NOT.lower .AND. .NOT.lsame( uplo,
'U' ) )
THEN
256 ELSE IF( n.LT.0 )
THEN
260 CALL xerbla(
'ZPFTRI', -info )
271 CALL ztftri( transr, uplo,
'N', n, a, info )
278 IF( mod( n, 2 ).EQ.0 )
THEN
302 IF( normaltransr )
THEN
312 CALL zlauum(
'L', n1, a( 0 ), n, info )
313 CALL zherk(
'L',
'C', n1, n2, one, a( n1 ), n, one,
315 CALL ztrmm(
'L', 'u
', 'n
', 'n
', N2, N1, CONE, A( N ), N,
317 CALL ZLAUUM( 'u
', N2, A( N ), N, INFO )
325 CALL ZLAUUM( 'l
', N1, A( N2 ), N, INFO )
326 CALL ZHERK( 'l
', 'n
', N1, N2, ONE, A( 0 ), N, ONE,
328 CALL ZTRMM( 'r
', 'u
', 'c
', 'n
', N1, N2, CONE, A( N1 ), N,
330 CALL ZLAUUM( 'u', n2, a( n1 ), n, info )
343 CALL zlauum(
'U', n1, a( 0 ), n1, info )
344 CALL zherk(
'U',
'N', n1, n2, one, a
346 CALL ztrmm(
'R',
'L',
'N',
'N', n1, n2, cone, a( 1 ), n1,
348 CALL zlauum(
'L', n2, a( 1 ), n1, info )
355 CALL zlauum(
'U', n1, a( n2*n2 ), n2, info )
356 CALL zherk(
'U',
'C', n1, n2, one, a( 0 ), n2, one,
358 CALL ztrmm(
'L',
'L',
'C',
'N', n2, n1, cone, a( n1*n2 ),
360 CALL zlauum(
'L', n2, a( n1*n2 ), n2, info )
370 IF( normaltransr )
THEN
380 CALL zlauum(
'L', k, a( 1 ), n+1, info )
381 CALL zherk(
'L',
'C', k, k, one, a( k+1 ), n+1, one,
383 CALL ztrmm(
'L',
'U',
'N',
'N', k, k, cone, a( 0 ), n+1,
385 CALL zlauum(
'U', k, a( 0 ), n+1, info )
393 CALL zlauum(
'L', k, a( k+1 ), n+1, info )
394 CALL zherk(
'L',
'N', k, k, one, a( 0 ), n+1, one,
396 CALL ztrmm(
'R',
'U',
'C',
'N', k, k, cone, a( k ), n+1,
398 CALL zlauum(
'U', k, a( k ), n+1, info )
412 CALL zlauum(
'U', k, a( k ), k, info )
413 CALL zherk(
'U',
'N', k, k, one, a( k*( k+1 ) ), k, one,
415 CALL ztrmm(
'R',
'L',
'N',
'N', k, k, cone, a( 0 ), k,
416 $ a( k*( k+1 ) ), k )
417 CALL zlauum(
'L', k, a( 0 ), k, info )
425 CALL zlauum(
'U', k, a( k*( k+1 ) ), k, info )
427 $ a( k*( k+1 ) ), k )
428 CALL ztrmm(
'L',
'L',
'C',
'N', k, k, cone, a( k*k ), k,
430 CALL zlauum(
'L', k, a( k*k ), k, info )
subroutine ztrmm(side, uplo, transa, diag, m, n, alpha, a, lda, b, ldb)
ZTRMM