390 SUBROUTINE slarfb_gett( IDENT, M, N, K, T, LDT, A, LDA, B, LDB,
400 INTEGER K, LDA, LDB, LDT, LDWORK, M, N
403 REAL A( LDA, * ), B( LDB, * ), T( LDT, * ),
411 parameter( one = 1.0e+0, zero = 0.0e+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 scopy( k, a( 1, k+j ), 1, work( 1, j ), 1 )
458 CALL strmm(
'L',
'L',
'T',
'U', k, n-k, one, a, lda,
466 CALL sgemm(
'T',
'N', k, n-k, m, one, b, ldb,
467 $ b( 1, k+1 ), ldb, one, work, ldwork )
473 CALL strmm(
'L',
'U',
'N',
'N', k, n-k, one, t, ldt,
480 CALL sgemm(
'N',
'N', m, n-k, k, -one, b, ldb,
481 $ work, ldwork, one, b( 1, k+1 ), ldb )
490 CALL strmm(
'L',
'L',
'N',
'U', k, n-k, one, a, lda,
500 a( i, k+j ) = a( i, k+j ) - work( i, j )
520 CALL scopy( j, a( 1, j ), 1, work( 1, j ), 1 )
538 CALL strmm(
'L',
'L',
'T',
'U', k, k, one, a, lda,
546 CALL strmm(
'L',
'U',
'N',
'N', k, k, one, t, ldt,
553 CALL strmm(
'R',
'U',
'N',
'N', m, k, -one, work, ldwork,
565 CALL strmm(
'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 scopy(n, sx, incx, sy, incy)
SCOPY
subroutine sgemm(transa, transb, m, n, k, alpha, a, lda, b, ldb, beta, c, ldc)
SGEMM
subroutine slarfb_gett(ident, m, n, k, t, ldt, a, lda, b, ldb, work, ldwork)
SLARFB_GETT
subroutine strmm(side, uplo, transa, diag, m, n, alpha, a, lda, b, ldb)
STRMM