188 SUBROUTINE dpftri( TRANSR, UPLO, N, A, INFO )
195 CHARACTER TRANSR, UPLO
198 DOUBLE PRECISION A( 0: * )
205 parameter( one = 1.0d+0 )
208 LOGICAL LOWER, NISODD, NORMALTRANSR
227 normaltransr = lsame( transr,
'N' )
228 lower = lsame( uplo,
'L' )
229 IF( .NOT.normaltransr .AND. .NOT.lsame( transr,
'T' ) )
THEN
231 ELSE IF( .NOT.lower .AND. .NOT.lsame( uplo,
'U' ) )
THEN
233 ELSE IF( n.LT.0 )
THEN
237 CALL xerbla(
'DPFTRI', -info )
248 CALL dtftri( transr, uplo,
'N', n, a, info )
255 IF( mod( n, 2 ).EQ.0 )
THEN
279 IF( normaltransr )
THEN
289 CALL dlauum(
'L', n1, a( 0 ), n, info )
290 CALL dsyrk(
'L',
'T', n1, n2, one, a( n1 ), n, one,
292 CALL dtrmm(
'L',
'U',
'N',
'N', n2, n1, one, a( n ),
295 CALL dlauum(
'U', n2, a( n ), n, info )
303 CALL dlauum(
'L', n1, a( n2 ), n, info )
304 CALL dsyrk(
'L',
'N', n1, n2, one, a( 0 ), n, one,
306 CALL dtrmm(
'R',
'U',
'T',
'N', n1, n2, one, a( n1 ),
309 CALL dlauum(
'U', n2, a( n1 ), n, info )
322 CALL dlauum(
'U', n1, a( 0 ), n1, info )
323 CALL dsyrk(
'U',
'N', n1, n2, one, a( n1*n1 ), n1,
326 CALL dtrmm(
'R',
'L',
'N',
'N', n1, n2, one, a( 1 ),
329 CALL dlauum(
'L', n2, a( 1 ), n1, info )
336 CALL dlauum(
'U', n1, a( n2*n2 ), n2, info )
337 CALL dsyrk(
'U',
'T', n1, n2, one, a( 0 ), n2, one,
339 CALL dtrmm(
'L',
'L',
'T',
'N', n2, n1, one,
342 CALL dlauum(
'L', n2, a( n1*n2 ), n2, info )
352 IF( normaltransr )
THEN
362 CALL dlauum(
'L', k, a( 1 ), n+1, info )
363 CALL dsyrk(
'L',
'T', k, k, one, a( k+1 ), n+1, one,
365 CALL dtrmm(
'L',
'U',
'N',
'N', k, k, one, a( 0 ),
368 CALL dlauum(
'U', k, a( 0 ), n+1, info )
376 CALL dlauum(
'L', k, a( k+1 ), n+1, info )
377 CALL dsyrk(
'L',
'N', k, k, one, a( 0 ), n+1, one,
379 CALL dtrmm(
'R',
'U',
'T',
'N', k, k, one, a( k ),
382 CALL dlauum(
'U', k, a( k ), n+1, info )
396 CALL dlauum(
'U', k, a( k ), k, info )
397 CALL dsyrk(
'U',
'N', k, k, one, a( k*( k+1 ) ), k,
400 CALL dtrmm(
'R',
'L',
'N',
'N', k, k, one, a( 0 ), k,
401 $ a( k*( k+1 ) ), k )
402 CALL dlauum(
'L', k, a( 0 ), k, info )
410 CALL dlauum(
'U', k, a( k*( k+1 ) ), k, info )
411 CALL dsyrk(
'U',
'T', k, k, one, a( 0 ), k, one,
412 $ a( k*( k+1 ) ), k )
413 CALL dtrmm(
'L',
'L',
'T',
'N', k, k, one, a( k*k ),
416 CALL dlauum(
'L', k, a( k*k ), k, info )
subroutine dsyrk(uplo, trans, n, k, alpha, a, lda, beta, c, ldc)
DSYRK
subroutine dlauum(uplo, n, a, lda, info)
DLAUUM computes the product UUH or LHL, where U and L are upper or lower triangular matrices (blocked...
subroutine dtrmm(side, uplo, transa, diag, m, n, alpha, a, lda, b, ldb)
DTRMM