388 SUBROUTINE dlarfb_gett( IDENT, M, N, K, T, LDT, A, LDA, B, LDB,
398 INTEGER K, LDA, LDB, LDT, LDWORK, M, N
401 DOUBLE PRECISION A( LDA, * ), B( LDB, * ), T( LDT, * ),
408 DOUBLE PRECISION ONE, ZERO
409 parameter( one = 1.0d+0, zero = 0.0d+0 )
426 IF( m.LT.0 .OR. n.LE.0 .OR. k.EQ.0 .OR. k.GT.n )
429 lnotident = .NOT.lsame( ident,
'I' )
446 CALL dcopy( k, a( 1, k+j ), 1, work( 1, j ), 1 )
456 CALL dtrmm(
'L',
'L',
'T',
'U', k, n-k, one, a, lda,
464 CALL dgemm(
'T',
'N', k, n-k, m, one, b, ldb,
465 $ b( 1, k+1 ), ldb, one, work, ldwork )
471 CALL dtrmm(
'L',
'U',
'N',
'N', k, n-k, one, t, ldt,
478 CALL dgemm(
'N',
'N', m, n-k, k, -one, b, ldb,
479 $ work, ldwork, one, b( 1, k+1 ), ldb )
488 CALL dtrmm(
'L',
'L',
'N',
'U', k, n-k, one, a, lda,
498 a( i, k+j ) = a( i, k+j ) - work( i, j )
518 CALL dcopy( j, a( 1, j ), 1, work( 1, j ), 1 )
536 CALL dtrmm(
'L',
'L',
'T',
'U', k, k, one, a, lda,
544 CALL dtrmm(
'L',
'U',
'N',
'N', k, k, one, t, ldt,
551 CALL dtrmm(
'R',
'U',
'N',
'N', m, k, -one, work, ldwork,
563 CALL dtrmm(
'L',
'L',
'N',
'U', k, k, one, a, lda,
576 a( i, j ) = - work( i, j )
586 a( i, j ) = a( i, j ) - work( i, j )
subroutine dgemm(transa, transb, m, n, k, alpha, a, lda, b, ldb, beta, c, ldc)
DGEMM
subroutine dlarfb_gett(ident, m, n, k, t, ldt, a, lda, b, ldb, work, ldwork)
DLARFB_GETT
subroutine dtrmm(side, uplo, transa, diag, m, n, alpha, a, lda, b, ldb)
DTRMM