388 SUBROUTINE zlarfb_gett( IDENT, M, N, K, T, LDT, A, LDA, B, LDB,
398 INTEGER K, LDA, LDB, LDT, LDWORK, M, N
401 COMPLEX*16 A( LDA, * ), B( LDB, * ), T( LDT, * ),
408 COMPLEX*16 CONE, CZERO
409 parameter( cone = ( 1.0d+0, 0.0d+0 ),
410 $ czero = ( 0.0d+0, 0.0d+0 ) )
427 IF( m.LT.0 .OR. n.LE.0 .OR. k.EQ.0 .OR. k.GT.n )
430 lnotident = .NOT.lsame( ident,
'I' )
447 CALL zcopy( k, a( 1, k+j ), 1, work( 1, j ), 1 )
457 CALL ztrmm(
'L',
'L',
'C',
'U', k, n-k, cone, a, lda,
465 CALL zgemm(
'C',
'N', k, n-k, m, cone, b, ldb,
466 $ b( 1, k+1 ), ldb, cone, work, ldwork )
472 CALL ztrmm(
'L',
'U',
'N',
'N', k, n-k, cone, t, ldt,
479 CALL zgemm(
'N',
'N', m, n-k, k, -cone, b, ldb,
480 $ work, ldwork, cone, b( 1, k+1 ), ldb )
489 CALL ztrmm(
'L',
'L',
'N',
'U', k, n-k, cone, a, lda,
499 a( i, k+j ) = a( i, k+j ) - work( i, j )
519 CALL zcopy( j, a( 1, j ), 1, work( 1, j ), 1 )
537 CALL ztrmm(
'L',
'L',
'C',
'U', k, k, cone, a, lda,
545 CALL ztrmm(
'L',
'U',
'N',
'N', k, k, cone, t, ldt,
552 CALL ztrmm(
'R',
'U',
'N',
'N', m, k, -cone, work, ldwork,
564 CALL ztrmm(
'L',
'L',
'N',
'U', k, k, cone, a, lda,
577 a( i, j ) = - work( i, j )
587 a( i, j ) = a( i, j ) - work( i, j )
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