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 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 ctpmlqt(SIDE, TRANS, M, N, K, L, MB, V, LDV, T, LDT, A, LDA, B, LDB, WORK, INFO)
subroutine xerbla(SRNAME, INFO)
XERBLA