214 SUBROUTINE stpmlqt( SIDE, TRANS, M, N, K, L, MB, V, LDV, T, LDT,
215 $ A, LDA, B, LDB, WORK, INFO )
222 CHARACTER SIDE, TRANS
223 INTEGER INFO, K, LDV, LDA, LDB, M, N, L, MB, LDT
226 REAL V( LDV, * ), A( LDA, * ), B( LDB, * ),
227 $ t( ldt, * ), work( * )
234 LOGICAL LEFT, RIGHT, TRAN, NOTRAN
235 INTEGER I, IB, NB, LB, KF, LDAQ
252 left = lsame( side,
'L' )
253 right = lsame( side,
'R' )
254 tran = lsame( trans,
'T' )
255 notran = lsame( trans,
'N' )
259 ELSE IF ( right )
THEN
262 IF( .NOT.left .AND. .NOT.right )
THEN
264 ELSE IF( .NOT.tran .AND. .NOT.notran )
THEN
266 ELSE IF( m.LT.0 )
THEN
268 ELSE IF( n.LT.0 )
THEN
270 ELSE IF( k.LT.0 )
THEN
272 ELSE IF( l.LT.0 .OR. l.GT.k )
THEN
274 ELSE IF( mb.LT.1 .OR. (mb.GT.k .AND. k.GT.0) )
THEN
276 ELSE IF( ldv.LT.k )
THEN
278 ELSE IF( ldt.LT.mb )
THEN
280 ELSE IF( lda.LT.ldaq )
THEN
282 ELSE IF( ldb.LT.max( 1, m ) )
THEN
287 CALL xerbla(
'STPMLQT', -info )
293 IF( m.EQ.0 .OR. n.EQ.0 .OR. k.EQ.0 )
RETURN
295 IF( left .AND. notran )
THEN
298 ib = min( mb, k-i+1 )
299 nb = min( m-l+i+ib-1, m )
305 CALL stprfb(
'L',
'T',
'F',
'R', nb, n, ib, lb,
306 $ v( i, 1 ), ldv, t( 1, i ), ldt,
307 $ a( i, 1 ), lda, b, ldb, work, ib )
310 ELSE IF( right .AND. tran )
THEN
313 ib = min( mb, k-i+1 )
314 nb = min( n-l+i+ib-1, n )
320 CALL stprfb(
'R',
'N',
'F',
'R', m, nb, ib, lb,
321 $ v( i, 1 ), ldv, t( 1, i ), ldt,
322 $ a( 1, i ), lda, b, ldb, work, m )
325 ELSE IF( left .AND. tran )
THEN
329 ib = min( mb, k-i+1 )
330 nb = min( m-l+i+ib-1, m )
336 CALL stprfb(
'L',
'N',
'F',
'R', nb, n, ib, lb,
337 $ v( i, 1 ), ldv, t( 1, i ), ldt,
338 $ a( i, 1 ), lda, b, ldb, work, ib )
341 ELSE IF( right .AND. notran )
THEN
345 ib = min( mb, k-i+1 )
346 nb = min( n-l+i+ib-1, n )
352 CALL stprfb(
'R',
'T',
'F',
'R', m, nb, ib, lb,
353 $ v( i, 1 ), ldv, t( 1, i ), ldt,
354 $ a( 1, i ), lda, b, ldb, work, m )
subroutine xerbla(SRNAME, INFO)
XERBLA
subroutine stpmlqt(SIDE, TRANS, M, N, K, L, MB, V, LDV, T, LDT, A, LDA, B, LDB, WORK, INFO)
STPMLQT
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.
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...