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 )