197 SUBROUTINE ctpmlqt( SIDE, TRANS, M, N, K, L, MB, V, LDV, T,
199 $ A, LDA, B, LDB, WORK, INFO )
206 CHARACTER SIDE, TRANS
207 INTEGER INFO, K, LDV, LDA, LDB, M, N, L, MB, LDT
210 COMPLEX V( LDV, * ), A( LDA, * ), B( LDB, * ),
211 $ T( LDT, * ), WORK( * )
218 LOGICAL LEFT, RIGHT, TRAN, NOTRAN
219 INTEGER I, IB, NB, LB, KF, LDAQ
236 left = lsame( side,
'L' )
237 right = lsame( side,
'R' )
238 tran = lsame( trans,
'C' )
239 notran = lsame( trans,
'N' )
243 ELSE IF ( right )
THEN
246 IF( .NOT.left .AND. .NOT.right )
THEN
248 ELSE IF( .NOT.tran .AND. .NOT.notran )
THEN
250 ELSE IF( m.LT.0 )
THEN
252 ELSE IF( n.LT.0 )
THEN
254 ELSE IF( k.LT.0 )
THEN
256 ELSE IF( l.LT.0 .OR. l.GT.k )
THEN
258 ELSE IF( mb.LT.1 .OR. (mb.GT.k .AND. k.GT.0) )
THEN
260 ELSE IF( ldv.LT.k )
THEN
262 ELSE IF( ldt.LT.mb )
THEN
264 ELSE IF( lda.LT.ldaq )
THEN
266 ELSE IF( ldb.LT.max( 1, m ) )
THEN
271 CALL xerbla(
'CTPMLQT', -info )
277 IF( m.EQ.0 .OR. n.EQ.0 .OR. k.EQ.0 )
RETURN
279 IF( left .AND. notran )
THEN
282 ib = min( mb, k-i+1 )
283 nb = min( m-l+i+ib-1, m )
289 CALL ctprfb(
'L',
'C',
'F',
'R', nb, n, ib, lb,
290 $ v( i, 1 ), ldv, t( 1, i ), ldt,
291 $ a( i, 1 ), lda, b, ldb, work, ib )
294 ELSE IF( right .AND. tran )
THEN
297 ib = min( mb, k-i+1 )
298 nb = min( n-l+i+ib-1, n )
304 CALL ctprfb(
'R',
'N',
'F',
'R', m, nb, ib, lb,
305 $ v( i, 1 ), ldv, t( 1, i ), ldt,
306 $ a( 1, i ), lda, b, ldb, work, m )
309 ELSE IF( left .AND. tran )
THEN
313 ib = min( mb, k-i+1 )
314 nb = min( m-l+i+ib-1, m )
320 CALL ctprfb(
'L',
'N',
'F',
'R', nb, n, ib, lb,
321 $ v( i, 1 ), ldv, t( 1, i ), ldt,
322 $ a( i, 1 ), lda, b, ldb, work, ib )
325 ELSE IF( right .AND. notran )
THEN
329 ib = min( mb, k-i+1 )
330 nb = min( n-l+i+ib-1, n )
336 CALL ctprfb(
'R',
'C',
'F',
'R', m, nb, ib, lb,
337 $ v( i, 1 ), ldv, t( 1, i ), ldt,
338 $ a( 1, i ), lda, b, ldb, work, m )
subroutine ctpmlqt(side, trans, m, n, k, l, mb, v, ldv, t, ldt, a, lda, b, ldb, work, info)
CTPMLQT
subroutine ctprfb(side, trans, direct, storev, m, n, k, l, v, ldv, t, ldt, a, lda, b, ldb, work, ldwork)
CTPRFB applies a complex "triangular-pentagonal" block reflector to a complex matrix,...