212 SUBROUTINE zpftrf( TRANSR, UPLO, N, A, INFO )
220 CHARACTER TRANSR, UPLO
231 parameter ( one = 1.0d+0, cone = ( 1.0d+0, 0.0d+0 ) )
234 LOGICAL LOWER, NISODD, NORMALTRANSR
252 normaltransr = lsame( transr,
'N' )
253 lower = lsame( uplo,
'L' )
254 IF( .NOT.normaltransr .AND. .NOT.lsame( transr,
'C' ) )
THEN
256 ELSE IF( .NOT.lower .AND. .NOT.lsame( uplo,
'U' ) )
THEN
258 ELSE IF( n.LT.0 )
THEN
262 CALL xerbla(
'ZPFTRF', -info )
274 IF( mod( n, 2 ).EQ.0 )
THEN
297 IF( normaltransr )
THEN
307 CALL zpotrf(
'L', n1, a( 0 ), n, info )
310 CALL ztrsm(
'R',
'L',
'C',
'N', n2, n1, cone, a( 0 ), n,
312 CALL zherk(
'U',
'N', n2, n1, -one, a( n1 ), n, one,
314 CALL zpotrf(
'U', n2, a( n ), n, info )
324 CALL zpotrf(
'L', n1, a( n2 ), n, info )
327 CALL ztrsm(
'L',
'L',
'N',
'N', n1, n2, cone, a( n2 ), n,
329 CALL zherk(
'U',
'C', n2, n1, -one, a( 0 ), n, one,
331 CALL zpotrf(
'U', n2, a( n1 ), n, info )
347 CALL zpotrf(
'U', n1, a( 0 ), n1, info )
350 CALL ztrsm(
'L',
'U',
'C',
'N', n1, n2, cone, a( 0 ), n1,
352 CALL zherk(
'L',
'C', n2, n1, -one, a( n1*n1 ), n1, one,
354 CALL zpotrf(
'L', n2, a( 1 ), n1, info )
364 CALL zpotrf(
'U', n1, a( n2*n2 ), n2, info )
367 CALL ztrsm(
'R',
'U',
'N',
'N', n2, n1, cone, a( n2*n2 ),
369 CALL zherk(
'L',
'N', n2, n1, -one, a( 0 ), n2, one,
371 CALL zpotrf(
'L', n2, a( n1*n2 ), n2, info )
383 IF( normaltransr )
THEN
393 CALL zpotrf(
'L', k, a( 1 ), n+1, info )
396 CALL ztrsm(
'R',
'L',
'C',
'N', k, k, cone, a( 1 ), n+1,
398 CALL zherk(
'U',
'N', k, k, -one, a( k+1 ), n+1, one,
400 CALL zpotrf(
'U', k, a( 0 ), n+1, info )
410 CALL zpotrf(
'L', k, a( k+1 ), n+1, info )
413 CALL ztrsm(
'L',
'L',
'N',
'N', k, k, cone, a( k+1 ),
415 CALL zherk(
'U',
'C', k, k, -one, a( 0 ), n+1, one,
417 CALL zpotrf(
'U', k, a( k ), n+1, info )
433 CALL zpotrf(
'U', k, a( 0+k ), k, info )
436 CALL ztrsm(
'L',
'U',
'C',
'N', k, k, cone, a( k ), n1,
437 $ a( k*( k+1 ) ), k )
438 CALL zherk(
'L',
'C', k, k, -one, a( k*( k+1 ) ), k, one,
440 CALL zpotrf(
'L', k, a( 0 ), k, info )
450 CALL zpotrf(
'U', k, a( k*( k+1 ) ), k, info )
453 CALL ztrsm(
'R',
'U',
'N',
'N', k, k, cone,
454 $ a( k*( k+1 ) ), k, a( 0 ), k )
455 CALL zherk(
'L',
'N', k, k, -one, a( 0 ), k, one,
457 CALL zpotrf(
'L', k, a( k*k ), k, info )
subroutine zpotrf(UPLO, N, A, LDA, INFO)
ZPOTRF VARIANT: right looking block version of the algorithm, calling Level 3 BLAS.
subroutine zpftrf(TRANSR, UPLO, N, A, INFO)
ZPFTRF
subroutine xerbla(SRNAME, INFO)
XERBLA
subroutine zherk(UPLO, TRANS, N, K, ALPHA, A, LDA, BETA, C, LDC)
ZHERK
subroutine ztrsm(SIDE, UPLO, TRANSA, DIAG, M, N, ALPHA, A, LDA, B, LDB)
ZTRSM