197 SUBROUTINE ctpmlqt( SIDE, TRANS, M, N, K, L, MB, V, LDV, T, LDT,
198 $ A, LDA, B, LDB, WORK, INFO )
205 CHARACTER SIDE, TRANS
206 INTEGER INFO, K, LDV, LDA, LDB, M, N, L, MB, LDT
209 COMPLEX V( LDV, * ), A( LDA, * ), B( LDB, * ),
210 $ t( ldt, * ), work( * )
217 LOGICAL LEFT, RIGHT, TRAN, NOTRAN
218 INTEGER I, IB, NB, LB, KF, LDAQ
235 left = lsame( side,
'L' )
236 right = lsame( side,
'R' )
237 tran = lsame( trans,
'C' )
238 notran = lsame( trans,
'N' )
242 ELSE IF ( right )
THEN
245 IF( .NOT.left .AND. .NOT.right )
THEN
247 ELSE IF( .NOT.tran .AND. .NOT.notran )
THEN
249 ELSE IF( m.LT.0 )
THEN
251 ELSE IF( n.LT.0 )
THEN
253 ELSE IF( k.LT.0 )
THEN
255 ELSE IF( l.LT.0 .OR. l.GT.k )
THEN
257 ELSE IF( mb.LT.1 .OR. (mb.GT.k .AND. k.GT.0) )
THEN
259 ELSE IF( ldv.LT.k )
THEN
261 ELSE IF( ldt.LT.mb )
THEN
263 ELSE IF( lda.LT.ldaq )
THEN
265 ELSE IF( ldb.LT.max( 1, m ) )
THEN
270 CALL xerbla(
'CTPMLQT', -info )
276 IF( m.EQ.0 .OR. n.EQ.0 .OR. k.EQ.0 )
RETURN
278 IF( left .AND. notran )
THEN
281 ib = min( mb, k-i+1 )
282 nb = min( m-l+i+ib-1, m )
288 CALL ctprfb(
'L',
'C',
'F',
'R', nb, n, ib, lb,
289 $ v( i, 1 ), ldv, t( 1, i ), ldt,
290 $ a( i, 1 ), lda, b, ldb, work, ib )
293 ELSE IF( right .AND. tran )
THEN
296 ib = min( mb, k-i+1 )
297 nb = min( n-l+i+ib-1, n )
303 CALL ctprfb(
'R',
'N',
'F',
'R', m, nb, ib, lb,
304 $ v( i, 1 ), ldv, t( 1, i ), ldt,
305 $ a( 1, i ), lda, b, ldb, work, m )
308 ELSE IF( left .AND. tran )
THEN
312 ib = min( mb, k-i+1 )
313 nb = min( m-l+i+ib-1, m )
319 CALL ctprfb(
'L',
'N',
'F',
'R', nb, n, ib, lb,
320 $ v( i, 1 ), ldv, t( 1, i ), ldt,
321 $ a( i, 1 ), lda, b, ldb, work, ib )
324 ELSE IF( right .AND. notran )
THEN
328 ib = min( mb, k-i+1 )
329 nb = min( n-l+i+ib-1, n )
335 CALL ctprfb(
'R',
'C',
'F',
'R', m, nb, ib, lb,
336 $ v( i, 1 ), ldv, t( 1, i ), ldt,
337 $ a( 1, i ), lda, b, ldb, work, m )
subroutine xerbla(srname, info)
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,...