210 SUBROUTINE ztpmlqt( SIDE, TRANS, M, N, K, L, MB, V, LDV, T,
212 $ A, LDA, B, LDB, WORK, INFO )
219 CHARACTER SIDE, TRANS
220 INTEGER INFO, K, LDV, LDA, LDB, M, N, L, MB, LDT
223 COMPLEX*16 V( LDV, * ), A( LDA, * ), B( LDB, * ),
224 $ T( LDT, * ), WORK( * )
231 LOGICAL LEFT, RIGHT, TRAN, NOTRAN
232 INTEGER I, IB, NB, LB, KF, LDAQ
249 left = lsame( side,
'L' )
250 right = lsame( side,
'R' )
251 tran = lsame( trans,
'C' )
252 notran = lsame( trans,
'N' )
256 ELSE IF ( right )
THEN
259 IF( .NOT.left .AND. .NOT.right )
THEN
261 ELSE IF( .NOT.tran .AND. .NOT.notran )
THEN
263 ELSE IF( m.LT.0 )
THEN
265 ELSE IF( n.LT.0 )
THEN
267 ELSE IF( k.LT.0 )
THEN
269 ELSE IF( l.LT.0 .OR. l.GT.k )
THEN
271 ELSE IF( mb.LT.1 .OR. (mb.GT.k .AND. k.GT.0) )
THEN
273 ELSE IF( ldv.LT.k )
THEN
275 ELSE IF( ldt.LT.mb )
THEN
277 ELSE IF( lda.LT.ldaq )
THEN
279 ELSE IF( ldb.LT.max( 1, m ) )
THEN
284 CALL xerbla(
'ZTPMLQT', -info )
290 IF( m.EQ.0 .OR. n.EQ.0 .OR. k.EQ.0 )
RETURN
292 IF( left .AND. notran )
THEN
295 ib = min( mb, k-i+1 )
296 nb = min( m-l+i+ib-1, m )
302 CALL ztprfb(
'L',
'C',
'F',
'R', nb, n, ib, lb,
303 $ v( i, 1 ), ldv, t( 1, i ), ldt,
304 $ a( i, 1 ), lda, b, ldb, work, ib )
307 ELSE IF( right .AND. tran )
THEN
310 ib = min( mb, k-i+1 )
311 nb = min( n-l+i+ib-1, n )
317 CALL ztprfb(
'R',
'N',
'F',
'R', m, nb, ib, lb,
318 $ v( i, 1 ), ldv, t( 1, i ), ldt,
319 $ a( 1, i ), lda, b, ldb, work, m )
322 ELSE IF( left .AND. tran )
THEN
326 ib = min( mb, k-i+1 )
327 nb = min( m-l+i+ib-1, m )
333 CALL ztprfb(
'L',
'N',
'F',
'R', nb, n, ib, lb,
334 $ v( i, 1 ), ldv, t( 1, i ), ldt,
335 $ a( i, 1 ), lda, b, ldb, work, ib )
338 ELSE IF( right .AND. notran )
THEN
342 ib = min( mb, k-i+1 )
343 nb = min( n-l+i+ib-1, n )
349 CALL ztprfb(
'R',
'C',
'F',
'R', m, nb, ib, lb,
350 $ v( i, 1 ), ldv, t( 1, i ), ldt,
351 $ a( 1, i ), lda, b, ldb, work, m )
subroutine ztpmlqt(side, trans, m, n, k, l, mb, v, ldv, t, ldt, a, lda, b, ldb, work, info)
ZTPMLQT
subroutine ztprfb(side, trans, direct, storev, m, n, k, l, v, ldv, t, ldt, a, lda, b, ldb, work, ldwork)
ZTPRFB applies a complex "triangular-pentagonal" block reflector to a complex matrix,...