212 SUBROUTINE stpmlqt( SIDE, TRANS, M, N, K, L, MB, V, LDV, T, LDT,
213 $ A, LDA, B, LDB, WORK, INFO )
220 CHARACTER SIDE, TRANS
221 INTEGER INFO, K, LDV, LDA, LDB, M, N, L, MB, LDT
224 REAL V( LDV, * ), A( LDA, * ), B( LDB, * ),
225 $ t( ldt, * ), work( * )
232 LOGICAL LEFT, RIGHT, TRAN, NOTRAN
233 INTEGER I, IB, NB, LB, KF, LDAQ
250 left = lsame( side,
'L' )
251 right = lsame( side,
'R' )
252 tran = lsame( trans,
'T' )
253 notran = lsame( trans,
'N' )
257 ELSE IF ( right )
THEN
260 IF( .NOT.left .AND. .NOT.right )
THEN
262 ELSE IF( .NOT.tran .AND. .NOT.notran )
THEN
264 ELSE IF( m.LT.0 )
THEN
266 ELSE IF( n.LT.0 )
THEN
268 ELSE IF( k.LT.0 )
THEN
270 ELSE IF( l.LT.0 .OR. l.GT.k )
THEN
272 ELSE IF( mb.LT.1 .OR. (mb.GT.k .AND. k.GT.0) )
THEN
274 ELSE IF( ldv.LT.k )
THEN
276 ELSE IF( ldt.LT.mb )
THEN
278 ELSE IF( lda.LT.ldaq )
THEN
280 ELSE IF( ldb.LT.max( 1, m ) )
THEN
285 CALL xerbla(
'STPMLQT', -info )
291 IF( m.EQ.0 .OR. n.EQ.0 .OR. k.EQ.0 )
RETURN
293 IF( left .AND. notran )
THEN
296 ib = min( mb, k-i+1 )
297 nb = min( m-l+i+ib-1, m )
303 CALL stprfb(
'L',
'T',
'F',
'R', nb, n, ib, lb,
304 $ v( i, 1 ), ldv, t( 1, i ), ldt,
305 $ a( i, 1 ), lda, b, ldb, work, ib )
308 ELSE IF( right .AND. tran )
THEN
311 ib = min( mb, k-i+1 )
312 nb = min( n-l+i+ib-1, n )
318 CALL stprfb(
'R',
'N',
'F',
'R', m, nb, ib, lb,
319 $ v( i, 1 ), ldv, t( 1, i ), ldt,
320 $ a( 1, i ), lda, b, ldb, work, m )
323 ELSE IF( left .AND. tran )
THEN
327 ib = min( mb, k-i+1 )
328 nb = min( m-l+i+ib-1, m )
334 CALL stprfb(
'L',
'N',
'F',
'R', nb, n, ib, lb,
335 $ v( i, 1 ), ldv, t( 1, i ), ldt,
336 $ a( i, 1 ), lda, b, ldb, work, ib )
339 ELSE IF( right .AND. notran )
THEN
343 ib = min( mb, k-i+1 )
344 nb = min( n-l+i+ib-1, n )
350 CALL stprfb(
'R',
'T',
'F',
'R', m, nb, ib, lb,
351 $ v( i, 1 ), ldv, t( 1, i ), ldt,
352 $ a( 1, i ), lda, b, ldb, work, m )
subroutine xerbla(srname, info)
subroutine stpmlqt(side, trans, m, n, k, l, mb, v, ldv, t, ldt, a, lda, b, ldb, work, info)
STPMLQT
subroutine stprfb(side, trans, direct, storev, m, n, k, l, v, ldv, t, ldt, a, lda, b, ldb, work, ldwork)
STPRFB applies a real "triangular-pentagonal" block reflector to a real matrix, which is composed of ...