214 SUBROUTINE stpmqrt( SIDE, TRANS, M, N, K, L, NB, 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, NB, LDT
226 REAL V( LDV, * ), A( LDA, * ), B( LDB, * ), T( LDT, * ),
234 LOGICAL LEFT, RIGHT, TRAN, NOTRAN
235 INTEGER I, IB, MB, LB, KF, LDAQ, LDVQ
252 left = lsame( side,
'L' )
253 right = lsame( side,
'R' )
254 tran = lsame( trans,
'T' )
255 notran = lsame( trans,
'N' )
260 ELSE IF ( right )
THEN
264 IF( .NOT.left .AND. .NOT.right )
THEN
266 ELSE IF( .NOT.tran .AND. .NOT.notran )
THEN
268 ELSE IF( m.LT.0 )
THEN
270 ELSE IF( n.LT.0 )
THEN
272 ELSE IF( k.LT.0 )
THEN
274 ELSE IF( l.LT.0 .OR. l.GT.k )
THEN
276 ELSE IF( nb.LT.1 .OR. (nb.GT.k .AND. k.GT.0) )
THEN
278 ELSE IF( ldv.LT.ldvq )
THEN
280 ELSE IF( ldt.LT.nb )
THEN
282 ELSE IF( lda.LT.ldaq )
THEN
284 ELSE IF( ldb.LT.max( 1, m ) )
THEN
289 CALL xerbla(
'STPMQRT', -info )
295 IF( m.EQ.0 .OR. n.EQ.0 .OR. k.EQ.0 )
RETURN
297 IF( left .AND. tran )
THEN
300 ib = min( nb, k-i+1 )
301 mb = min( m-l+i+ib-1, m )
307 CALL stprfb(
'L',
'T',
'F',
'C', mb, n, ib, lb,
308 $ v( 1, i ), ldv, t( 1, i ), ldt,
309 $ a( i, 1 ), lda, b, ldb, work, ib )
312 ELSE IF( right .AND. notran )
THEN
315 ib = min( nb, k-i+1 )
316 mb = min( n-l+i+ib-1, n )
322 CALL stprfb(
'R',
'N',
'F',
'C', m, mb, ib, lb,
323 $ v( 1, i ), ldv, t( 1, i ), ldt,
324 $ a( 1, i ), lda, b, ldb, work, m )
327 ELSE IF( left .AND. notran )
THEN
331 ib = min( nb, k-i+1 )
332 mb = min( m-l+i+ib-1, m )
338 CALL stprfb(
'L',
'N',
'F',
'C', mb, n, ib, lb,
339 $ v( 1, i ), ldv, t( 1, i ), ldt,
340 $ a( i, 1 ), lda, b, ldb, work, ib )
343 ELSE IF( right .AND. tran )
THEN
347 ib = min( nb, k-i+1 )
348 mb = min( n-l+i+ib-1, n )
354 CALL stprfb(
'R',
'T',
'F',
'C', m, mb, ib, lb,
355 $ v( 1, i ), ldv, t( 1, i ), ldt,
356 $ a( 1, i ), lda, b, ldb, work, m )
subroutine xerbla(srname, info)
subroutine stpmqrt(side, trans, m, n, k, l, nb, v, ldv, t, ldt, a, lda, b, ldb, work, info)
STPMQRT
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 ...