212 SUBROUTINE ztpmqrt( SIDE, TRANS, M, N, K, L, NB, V, LDV, T,
214 $ A, LDA, B, LDB, WORK, INFO )
221 CHARACTER SIDE, TRANS
222 INTEGER INFO, K, LDV, LDA, LDB, M, N, L, NB, LDT
225 COMPLEX*16 V( LDV, * ), A( LDA, * ), B( LDB, * ), T( LDT, * ),
233 LOGICAL LEFT, RIGHT, TRAN, NOTRAN
234 INTEGER I, IB, MB, LB, KF, LDAQ, LDVQ
251 left = lsame( side,
'L' )
252 right = lsame( side,
'R' )
253 tran = lsame( trans,
'C' )
254 notran = lsame( trans,
'N' )
259 ELSE IF ( right )
THEN
263 IF( .NOT.left .AND. .NOT.right )
THEN
265 ELSE IF( .NOT.tran .AND. .NOT.notran )
THEN
267 ELSE IF( m.LT.0 )
THEN
269 ELSE IF( n.LT.0 )
THEN
271 ELSE IF( k.LT.0 )
THEN
273 ELSE IF( l.LT.0 .OR. l.GT.k )
THEN
275 ELSE IF( nb.LT.1 .OR. (nb.GT.k .AND. k.GT.0) )
THEN
277 ELSE IF( ldv.LT.ldvq )
THEN
279 ELSE IF( ldt.LT.nb )
THEN
281 ELSE IF( lda.LT.ldaq )
THEN
283 ELSE IF( ldb.LT.max( 1, m ) )
THEN
288 CALL xerbla(
'ZTPMQRT', -info )
294 IF( m.EQ.0 .OR. n.EQ.0 .OR. k.EQ.0 )
RETURN
296 IF( left .AND. tran )
THEN
299 ib = min( nb, k-i+1 )
300 mb = min( m-l+i+ib-1, m )
306 CALL ztprfb(
'L',
'C',
'F',
'C', mb, n, ib, lb,
307 $ v( 1, i ), ldv, t( 1, i ), ldt,
308 $ a( i, 1 ), lda, b, ldb, work, ib )
311 ELSE IF( right .AND. notran )
THEN
314 ib = min( nb, k-i+1 )
315 mb = min( n-l+i+ib-1, n )
321 CALL ztprfb(
'R',
'N',
'F',
'C', m, mb, ib, lb,
322 $ v( 1, i ), ldv, t( 1, i ), ldt,
323 $ a( 1, i ), lda, b, ldb, work, m )
326 ELSE IF( left .AND. notran )
THEN
330 ib = min( nb, k-i+1 )
331 mb = min( m-l+i+ib-1, m )
337 CALL ztprfb(
'L',
'N',
'F',
'C', mb, n, ib, lb,
338 $ v( 1, i ), ldv, t( 1, i ), ldt,
339 $ a( i, 1 ), lda, b, ldb, work, ib )
342 ELSE IF( right .AND. tran )
THEN
346 ib = min( nb, k-i+1 )
347 mb = min( n-l+i+ib-1, n )
353 CALL ztprfb(
'R',
'C',
'F',
'C', m, mb, ib, lb,
354 $ v( 1, i ), ldv, t( 1, i ), ldt,
355 $ a( 1, i ), lda, b, ldb, work, m )
subroutine ztpmqrt(side, trans, m, n, k, l, nb, v, ldv, t, ldt, a, lda, b, ldb, work, info)
ZTPMQRT
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,...