190 SUBROUTINE dpftri( TRANSR, UPLO, N, A, INFO )
197 CHARACTER TRANSR, UPLO
200 DOUBLE PRECISION A( 0: * )
207 parameter( one = 1.0d+0 )
210 LOGICAL LOWER, NISODD, NORMALTRANSR
228 normaltransr = lsame( transr,
'N' )
229 lower = lsame( uplo,
'L' )
230 IF( .NOT.normaltransr .AND. .NOT.lsame( transr,
'T' ) )
THEN
232 ELSE IF( .NOT.lower .AND. .NOT.lsame( uplo,
'U' ) )
THEN
234 ELSE IF( n.LT.0 )
THEN
238 CALL xerbla(
'DPFTRI', -info )
249 CALL dtftri( transr, uplo,
'N', n, a, info )
256 IF( mod( n, 2 ).EQ.0 )
THEN
280 IF( normaltransr )
THEN
290 CALL dlauum(
'L', n1, a( 0 ), n, info )
291 CALL dsyrk(
'L',
'T', n1, n2, one, a( n1 ), n, one,
293 CALL dtrmm(
'L',
'U',
'N',
'N', n2, n1, one, a( n ), 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 ), n,
308 CALL dlauum(
'U', n2, a( n1 ), n, info )
321 CALL dlauum(
'U', n1, a( 0 ), n1, info )
322 CALL dsyrk(
'U',
'N', n1, n2, one, a( n1*n1 ), n1, one,
324 CALL dtrmm(
'R',
'L',
'N',
'N', n1, n2, one, a( 1 ), n1,
326 CALL dlauum(
'L', n2, a( 1 ), n1, info )
333 CALL dlauum(
'U', n1, a( n2*n2 ), n2, info )
334 CALL dsyrk(
'U',
'T', n1, n2, one, a( 0 ), n2, one,
336 CALL dtrmm(
'L',
'L',
'T',
'N', n2, n1, one, a( n1*n2 ),
338 CALL dlauum(
'L', n2, a( n1*n2 ), n2, info )
348 IF( normaltransr )
THEN
358 CALL dlauum(
'L', k, a( 1 ), n+1, info )
359 CALL dsyrk(
'L',
'T', k, k, one, a( k+1 ), n+1, one,
361 CALL dtrmm(
'L',
'U',
'N',
'N', k, k, one, a( 0 ), n+1,
363 CALL dlauum(
'U', k, a( 0 ), n+1, info )
371 CALL dlauum(
'L', k, a( k+1 ), n+1, info )
372 CALL dsyrk(
'L',
'N', k, k, one, a( 0 ), n+1, one,
374 CALL dtrmm(
'R',
'U',
'T',
'N', k, k, one, a( k ), n+1,
376 CALL dlauum(
'U', k, a( k ), n+1, info )
390 CALL dlauum(
'U', k, a( k ), k, info )
391 CALL dsyrk(
'U',
'N', k, k, one, a( k*( k+1 ) ), k, one,
393 CALL dtrmm(
'R',
'L',
'N',
'N', k, k, one, a( 0 ), k,
394 $ a( k*( k+1 ) ), k )
395 CALL dlauum(
'L', k, a( 0 ), k, info )
403 CALL dlauum(
'U', k, a( k*( k+1 ) ), k, info )
404 CALL dsyrk(
'U',
'T', k, k, one, a( 0 ), k, one,
405 $ a( k*( k+1 ) ), k )
406 CALL dtrmm(
'L',
'L',
'T',
'N', k, k, one, a( k*k ), k,
408 CALL dlauum(
'L', k, a( k*k ), k, info )
subroutine xerbla(srname, 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 dpftri(transr, uplo, n, a, info)
DPFTRI
subroutine dtftri(transr, uplo, diag, n, a, info)
DTFTRI
subroutine dtrmm(side, uplo, transa, diag, m, n, alpha, a, lda, b, ldb)
DTRMM