390 SUBROUTINE zlarfb_gett( IDENT, M, N, K, T, LDT, A, LDA, B, LDB,
400 INTEGER K, LDA, LDB, LDT, LDWORK, M, N
403 COMPLEX*16 A( LDA, * ), B( LDB, * ), T( LDT, * ),
410 COMPLEX*16 CONE, CZERO
411 parameter( cone = ( 1.0d+0, 0.0d+0 ),
412 $ czero = ( 0.0d+0, 0.0d+0 ) )
429 IF( m.LT.0 .OR. n.LE.0 .OR. k.EQ.0 .OR. k.GT.n )
432 lnotident = .NOT.lsame( ident,
'I' )
449 CALL zcopy( k, a( 1, k+j ), 1, work( 1, j ), 1 )
459 CALL ztrmm(
'L',
'L',
'C',
'U', k, n-k, cone, a, lda,
467 CALL zgemm(
'C',
'N', k, n-k, m, cone, b, ldb,
468 $ b( 1, k+1 ), ldb, cone, work, ldwork )
474 CALL ztrmm(
'L',
'U',
'N',
'N', k, n-k, cone, t, ldt,
481 CALL zgemm(
'N',
'N', m, n-k, k, -cone, b, ldb,
482 $ work, ldwork, cone, b( 1, k+1 ), ldb )
491 CALL ztrmm(
'L',
'L',
'N',
'U', k, n-k, cone, a, lda,
501 a( i, k+j ) = a( i, k+j ) - work( i, j )
521 CALL zcopy( j, a( 1, j ), 1, work( 1, j ), 1 )
539 CALL ztrmm(
'L',
'L',
'C',
'U', k, k, cone, a, lda,
547 CALL ztrmm(
'L',
'U',
'N',
'N', k, k, cone, t, ldt,
554 CALL ztrmm(
'R',
'U',
'N',
'N', m, k, -cone, work, ldwork,
566 CALL ztrmm(
'L',
'L',
'N',
'U', k, k, cone, a, lda,
579 a( i, j ) = - work( i, j )
589 a( i, j ) = a( i, j ) - work( i, j )
subroutine zcopy(n, zx, incx, zy, incy)
ZCOPY
subroutine zgemm(transa, transb, m, n, k, alpha, a, lda, b, ldb, beta, c, ldc)
ZGEMM
subroutine zlarfb_gett(ident, m, n, k, t, ldt, a, lda, b, ldb, work, ldwork)
ZLARFB_GETT
subroutine ztrmm(side, uplo, transa, diag, m, n, alpha, a, lda, b, ldb)
ZTRMM