212 SUBROUTINE cpftrf( TRANSR, UPLO, N, A, INFO )
220 CHARACTER TRANSR, UPLO
231 parameter ( one = 1.0e+0, cone = ( 1.0e+0, 0.0e+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(
'CPFTRF', -info )
274 IF( mod( n, 2 ).EQ.0 )
THEN
297 IF( normaltransr )
THEN
307 CALL cpotrf(
'L', n1, a( 0 ), n, info )
310 CALL ctrsm(
'R',
'L',
'C',
'N', n2, n1, cone, a( 0 ), n,
312 CALL cherk(
'U',
'N', n2, n1, -one, a( n1 ), n, one,
314 CALL cpotrf(
'U', n2, a( n ), n, info )
324 CALL cpotrf(
'L', n1, a( n2 ), n, info )
327 CALL ctrsm(
'L',
'L',
'N',
'N', n1, n2, cone, a( n2 ), n,
329 CALL cherk(
'U',
'C', n2, n1, -one, a( 0 ), n, one,
331 CALL cpotrf(
'U', n2, a( n1 ), n, info )
347 CALL cpotrf(
'U', n1, a( 0 ), n1, info )
350 CALL ctrsm(
'L',
'U',
'C',
'N', n1, n2, cone, a( 0 ), n1,
352 CALL cherk(
'L',
'C', n2, n1, -one, a( n1*n1 ), n1, one,
354 CALL cpotrf(
'L', n2, a( 1 ), n1, info )
364 CALL cpotrf(
'U', n1, a( n2*n2 ), n2, info )
367 CALL ctrsm(
'R',
'U',
'N',
'N', n2, n1, cone, a( n2*n2 ),
369 CALL cherk(
'L',
'N', n2, n1, -one, a( 0 ), n2, one,
371 CALL cpotrf(
'L', n2, a( n1*n2 ), n2, info )
383 IF( normaltransr )
THEN
393 CALL cpotrf(
'L', k, a( 1 ), n+1, info )
396 CALL ctrsm(
'R',
'L',
'C',
'N', k, k, cone, a( 1 ), n+1,
398 CALL cherk(
'U',
'N', k, k, -one, a( k+1 ), n+1, one,
400 CALL cpotrf(
'U', k, a( 0 ), n+1, info )
410 CALL cpotrf(
'L', k, a( k+1 ), n+1, info )
413 CALL ctrsm(
'L',
'L',
'N',
'N', k, k, cone, a( k+1 ),
415 CALL cherk(
'U',
'C', k, k, -one, a( 0 ), n+1, one,
417 CALL cpotrf(
'U', k, a( k ), n+1, info )
433 CALL cpotrf(
'U', k, a( 0+k ), k, info )
436 CALL ctrsm(
'L',
'U',
'C',
'N', k, k, cone, a( k ), n1,
437 $ a( k*( k+1 ) ), k )
438 CALL cherk(
'L',
'C', k, k, -one, a( k*( k+1 ) ), k, one,
440 CALL cpotrf(
'L', k, a( 0 ), k, info )
450 CALL cpotrf(
'U', k, a( k*( k+1 ) ), k, info )
453 CALL ctrsm(
'R',
'U',
'N',
'N', k, k, cone,
454 $ a( k*( k+1 ) ), k, a( 0 ), k )
455 CALL cherk(
'L',
'N', k, k, -one, a( 0 ), k, one,
457 CALL cpotrf(
'L', k, a( k*k ), k, info )
subroutine cherk(UPLO, TRANS, N, K, ALPHA, A, LDA, BETA, C, LDC)
CHERK
subroutine xerbla(SRNAME, INFO)
XERBLA
subroutine ctrsm(SIDE, UPLO, TRANSA, DIAG, M, N, ALPHA, A, LDA, B, LDB)
CTRSM
subroutine cpotrf(UPLO, N, A, LDA, INFO)
CPOTRF
subroutine cpftrf(TRANSR, UPLO, N, A, INFO)
CPFTRF