210 SUBROUTINE cpftrf( TRANSR, UPLO, N, A, INFO )
217 CHARACTER TRANSR, UPLO
228 parameter( one = 1.0e+0, cone = ( 1.0e+0, 0.0e+0 ) )
231 LOGICAL LOWER, NISODD, NORMALTRANSR
249 normaltransr = lsame( transr,
'N' )
250 lower = lsame( uplo,
'L' )
251 IF( .NOT.normaltransr .AND. .NOT.lsame( transr,
'C' ) )
THEN
253 ELSE IF( .NOT.lower .AND. .NOT.lsame( uplo,
'U' ) )
THEN
255 ELSE IF( n.LT.0 )
THEN
259 CALL xerbla(
'CPFTRF', -info )
271 IF( mod( n, 2 ).EQ.0 )
THEN
294 IF( normaltransr )
THEN
304 CALL cpotrf(
'L', n1, a( 0 ), n, info )
307 CALL ctrsm(
'R',
'L',
'C''N'
309 CALL cherk(
'U',
'N', n2, n1, -one, a( n1 ), n, one,
311 CALL cpotrf(
'U', n2, a( n ), n, info )
321 CALL cpotrf(
'L', n1, a( n2 ), n, info )
324 CALL ctrsm(
'L',
'L',
'N',
'N', n1, n2, cone, a( n2 ), n,
326 CALL cherk(
'U',
'C', n2, n1, -one, a( 0 ), n, one,
328 CALL cpotrf(
'U', n2, a( n1 ), n, info )
344 CALL cpotrf(
'U', n1, a( 0 ), n1, info )
347 CALL ctrsm(
'L',
'U',
'C',
'N', n1, n2, cone, a( 0 ), n1,
349 CALL cherk(
'L',
'C', n2, n1, -one, a( n1*n1 ), n1, one,
351 CALL cpotrf(
'L', n2, a( 1 ), n1, info )
361 CALL cpotrf(
'U', n1, a( n2*n2 ), n2, info )
364 CALL ctrsm(
'R',
'U',
'N',
'N', n2, n1, cone, a( n2*n2 ),
366 CALL cherk(
'L',
'N', n2, n1, -one, a( 0 ), n2, one,
368 CALL cpotrf(
'L', n2, a( n1*n2 ), n2, info )
380 IF( normaltransr )
THEN
390 CALL cpotrf(
'L', k, a( 1 ), n+1, info )
393 CALL ctrsm(
'R',
'L',
'C',
'N', k, k, cone, a( 1 ), n+1,
395 CALL cherk(
'U', 'n
', K, K, -ONE, A( K+1 ), N+1, ONE,
397 CALL CPOTRF( 'u
', K, A( 0 ), N+1, INFO )
407 CALL CPOTRF( 'l
', K, A( K+1 ), N+1, INFO )
410 CALL CTRSM( 'l
', 'l
', 'n
', 'n
', K, K, CONE, A( K+1 ),
412 CALL CHERK( 'u
', 'c
', K, K, -ONE, A( 0 ), N+1, ONE,
414 CALL CPOTRF( 'u
', K, A( K ), N+1, INFO )
430 CALL CPOTRF( 'u
', K, A( 0+K ), K, INFO )
433 CALL CTRSM( 'l
', 'u
', 'c
', 'n
', K, K, CONE, A( K ), N1,
434 $ A( K*( K+1 ) ), K )
435 CALL CHERK( 'l
', 'c
', K, K, -ONE, A( K*( K+1 ) ), K, ONE,
437 CALL CPOTRF( 'l
', K, A( 0 ), K, INFO )
447 CALL CPOTRF( 'u
', K, A( K*( K+1 ) ), K, INFO )
450 CALL CTRSM( 'r
', 'u
', 'n
', 'n
', K, K, CONE,
451 $ A( K*( K+1 ) ), K, A( 0 ), K )
452 CALL CHERK( 'l
', 'n
', K, K, -ONE, A( 0 ), K, ONE,
454 CALL CPOTRF( 'l
', K, A( K*K ), K, INFO )
subroutine ctrsm(side, uplo, transa, diag, m, n, alpha, a, lda, b, ldb)
CTRSM
subroutine cherk(uplo, trans, n, k, alpha, a, lda, beta, c, ldc)
CHERK