216 SUBROUTINE stpmlqt( SIDE, TRANS, M, N, K, L, MB, V, LDV, T, LDT,
217 $ a, lda, b, ldb, work, info )
225 CHARACTER SIDE, TRANS
226 INTEGER INFO, K, LDV, LDA, LDB, M, N, L, MB, LDT
229 REAL V( ldv, * ), A( lda, * ), B( ldb, * ),
230 $ t( ldt, * ), work( * )
237 LOGICAL LEFT, RIGHT, TRAN, NOTRAN
238 INTEGER I, IB, NB, LB, KF, LDAQ
255 left = lsame( side,
'L' )
256 right = lsame( side,
'R' )
257 tran = lsame( trans,
'T' )
258 notran = lsame( trans,
'N' )
262 ELSE IF ( right )
THEN
265 IF( .NOT.left .AND. .NOT.right )
THEN
267 ELSE IF( .NOT.tran .AND. .NOT.notran )
THEN
269 ELSE IF( m.LT.0 )
THEN
271 ELSE IF( n.LT.0 )
THEN
273 ELSE IF( k.LT.0 )
THEN
275 ELSE IF( l.LT.0 .OR. l.GT.k )
THEN
277 ELSE IF( mb.LT.1 .OR. (mb.GT.k .AND. k.GT.0) )
THEN
279 ELSE IF( ldv.LT.k )
THEN
281 ELSE IF( ldt.LT.mb )
THEN
283 ELSE IF( lda.LT.ldaq )
THEN
285 ELSE IF( ldb.LT.max( 1, m ) )
THEN
290 CALL xerbla(
'STPMLQT', -info )
296 IF( m.EQ.0 .OR. n.EQ.0 .OR. k.EQ.0 )
RETURN
298 IF( left .AND. notran )
THEN
301 ib = min( mb, k-i+1 )
302 nb = min( m-l+i+ib-1, m )
308 CALL stprfb(
'L',
'T',
'F',
'R', nb, n, ib, lb,
309 $ v( i, 1 ), ldv, t( 1, i ), ldt,
310 $ a( i, 1 ), lda, b, ldb, work, ib )
313 ELSE IF( right .AND. tran )
THEN
316 ib = min( mb, k-i+1 )
317 nb = min( n-l+i+ib-1, n )
323 CALL stprfb(
'R',
'N',
'F',
'R', m, nb, ib, lb,
324 $ v( i, 1 ), ldv, t( 1, i ), ldt,
325 $ a( 1, i ), lda, b, ldb, work, m )
328 ELSE IF( left .AND. tran )
THEN
332 ib = min( mb, k-i+1 )
333 nb = min( m-l+i+ib-1, m )
339 CALL stprfb(
'L',
'N',
'F',
'R', nb, n, ib, lb,
340 $ v( i, 1 ), ldv, t( 1, i ), ldt,
341 $ a( i, 1 ), lda, b, ldb, work, ib )
344 ELSE IF( right .AND. notran )
THEN
348 ib = min( mb, k-i+1 )
349 nb = min( n-l+i+ib-1, n )
355 CALL stprfb(
'R',
'T',
'F',
'R', m, nb, ib, lb,
356 $ v( i, 1 ), ldv, t( 1, i ), ldt,
357 $ a( 1, i ), lda, b, ldb, work, m )
subroutine stprfb(SIDE, TRANS, DIRECT, STOREV, M, N, K, L, V, LDV, T, LDT, A, LDA, B, LDB, WORK, LDWORK)
STPRFB applies a real or complex "triangular-pentagonal" blocked reflector to a real or complex matri...
subroutine xerbla(SRNAME, INFO)
XERBLA
subroutine stpmlqt(SIDE, TRANS, M, N, K, L, MB, V, LDV, T, LDT, A, LDA, B, LDB, WORK, INFO)
DTPMLQT
subroutine slarfb(SIDE, TRANS, DIRECT, STOREV, M, N, K, V, LDV, T, LDT, C, LDC, WORK, LDWORK)
SLARFB applies a block reflector or its transpose to a general rectangular matrix.