199 SUBROUTINE ctpmlqt( SIDE, TRANS, M, N, K, L, MB, V, LDV, T, LDT,
200 $ a, lda, b, ldb, work, info )
208 CHARACTER SIDE, TRANS
209 INTEGER INFO, K, LDV, LDA, LDB, M, N, L, MB, LDT
212 COMPLEX V( ldv, * ), A( lda, * ), B( ldb, * ),
213 $ t( ldt, * ), work( * )
220 LOGICAL LEFT, RIGHT, TRAN, NOTRAN
221 INTEGER I, IB, NB, LB, KF, LDAQ
238 left = lsame( side,
'L' )
239 right = lsame( side,
'R' )
240 tran = lsame( trans,
'C' )
241 notran = lsame( trans,
'N' )
245 ELSE IF ( right )
THEN
248 IF( .NOT.left .AND. .NOT.right )
THEN
250 ELSE IF( .NOT.tran .AND. .NOT.notran )
THEN
252 ELSE IF( m.LT.0 )
THEN
254 ELSE IF( n.LT.0 )
THEN
256 ELSE IF( k.LT.0 )
THEN
258 ELSE IF( l.LT.0 .OR. l.GT.k )
THEN
260 ELSE IF( mb.LT.1 .OR. (mb.GT.k .AND. k.GT.0) )
THEN
262 ELSE IF( ldv.LT.k )
THEN
264 ELSE IF( ldt.LT.mb )
THEN
266 ELSE IF( lda.LT.ldaq )
THEN
268 ELSE IF( ldb.LT.max( 1, m ) )
THEN
273 CALL xerbla(
'CTPMLQT', -info )
279 IF( m.EQ.0 .OR. n.EQ.0 .OR. k.EQ.0 )
RETURN
281 IF( left .AND. notran )
THEN
284 ib = min( mb, k-i+1 )
285 nb = min( m-l+i+ib-1, m )
291 CALL ctprfb(
'L',
'C',
'F',
'R', nb, n, ib, lb,
292 $ v( i, 1 ), ldv, t( 1, i ), ldt,
293 $ a( i, 1 ), lda, b, ldb, work, ib )
296 ELSE IF( right .AND. tran )
THEN
299 ib = min( mb, k-i+1 )
300 nb = min( n-l+i+ib-1, n )
306 CALL ctprfb(
'R',
'N',
'F',
'R', m, nb, ib, lb,
307 $ v( i, 1 ), ldv, t( 1, i ), ldt,
308 $ a( 1, i ), lda, b, ldb, work, m )
311 ELSE IF( left .AND. tran )
THEN
315 ib = min( mb, k-i+1 )
316 nb = min( m-l+i+ib-1, m )
322 CALL ctprfb(
'L',
'N',
'F',
'R', nb, n, ib, lb,
323 $ v( i, 1 ), ldv, t( 1, i ), ldt,
324 $ a( i, 1 ), lda, b, ldb, work, ib )
327 ELSE IF( right .AND. notran )
THEN
331 ib = min( mb, k-i+1 )
332 nb = min( n-l+i+ib-1, n )
338 CALL ctprfb(
'R',
'C',
'F',
'R', m, nb, ib, lb,
339 $ v( i, 1 ), ldv, t( 1, i ), ldt,
340 $ 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)
subroutine ctprfb(SIDE, TRANS, DIRECT, STOREV, M, N, K, L, V, LDV, T, LDT, A, LDA, B, LDB, WORK, LDWORK)
CTPRFB applies a real or complex "triangular-pentagonal" blocked reflector to a real or complex matri...
subroutine xerbla(SRNAME, INFO)
XERBLA