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)
XERBLA
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 ...
subroutine stpmqrt(SIDE, TRANS, M, N, K, L, NB, V, LDV, T, LDT, A, LDA, B, LDB, WORK, INFO)
STPMQRT