390 SUBROUTINE dlarfb_gett( IDENT, M, N, K, T, LDT, A, LDA, B, LDB,
400 INTEGER K, LDA, LDB, LDT, LDWORK, M, N
403 DOUBLE PRECISION A( LDA, * ), B( LDB, * ), T( LDT, * ),
410 DOUBLE PRECISION ONE, ZERO
411 parameter( one = 1.0d+0, zero = 0.0d+0 )
428 IF( m.LT.0 .OR. n.LE.0 .OR. k.EQ.0 .OR. k.GT.n )
431 lnotident = .NOT.lsame( ident,
'I' )
448 CALL dcopy( k, a( 1, k+j ), 1, work( 1, j ), 1 )
458 CALL dtrmm(
'L',
'L',
'T',
'U', k, n-k, one, a, lda,
466 CALL dgemm(
'T',
'N', k, n-k, m, one, b, ldb,
467 $ b( 1, k+1 ), ldb, one, work, ldwork )
473 CALL dtrmm(
'L',
'U',
'N',
'N', k, n-k, one, t, ldt,
480 CALL dgemm(
'N',
'N', m, n-k, k, -one, b, ldb,
481 $ work, ldwork, one, b( 1, k+1 ), ldb )
490 CALL dtrmm(
'L',
'L',
'N',
'U', k, n-k, one, a, lda,
500 a( i, k+j ) = a( i, k+j ) - work( i, j )
520 CALL dcopy( j, a( 1, j ), 1, work( 1, j ), 1 )
538 CALL dtrmm(
'L',
'L',
'T',
'U', k, k, one, a, lda,
546 CALL dtrmm(
'L',
'U',
'N',
'N', k, k, one, t, ldt,
553 CALL dtrmm(
'R',
'U',
'N',
'N', m, k, -one, work, ldwork,
565 CALL dtrmm(
'L',
'L',
'N',
'U', k, k, one, a, lda,
578 a( i, j ) = - work( i, j )
588 a( i, j ) = a( i, j ) - work( i, j )
subroutine dcopy(n, dx, incx, dy, incy)
DCOPY
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