216 SUBROUTINE stpmqrt( SIDE, TRANS, M, N, K, L, NB, 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, NB, LDT
229 REAL V( ldv, * ), A( lda, * ), B( ldb, * ), T( ldt, * ),
237 LOGICAL LEFT, RIGHT, TRAN, NOTRAN
238 INTEGER I, IB, MB, LB, KF, LDAQ, LDVQ
255 left = lsame( side,
'L' )
256 right = lsame( side,
'R' )
257 tran = lsame( trans,
'T' )
258 notran = lsame( trans,
'N' )
263 ELSE IF ( right )
THEN
267 IF( .NOT.left .AND. .NOT.right )
THEN
269 ELSE IF( .NOT.tran .AND. .NOT.notran )
THEN
271 ELSE IF( m.LT.0 )
THEN
273 ELSE IF( n.LT.0 )
THEN
275 ELSE IF( k.LT.0 )
THEN
277 ELSE IF( l.LT.0 .OR. l.GT.k )
THEN
279 ELSE IF( nb.LT.1 .OR. (nb.GT.k .AND. k.GT.0) )
THEN
281 ELSE IF( ldv.LT.ldvq )
THEN
283 ELSE IF( ldt.LT.nb )
THEN
285 ELSE IF( lda.LT.ldaq )
THEN
287 ELSE IF( ldb.LT.max( 1, m ) )
THEN
292 CALL xerbla(
'STPMQRT', -info )
298 IF( m.EQ.0 .OR. n.EQ.0 .OR. k.EQ.0 )
RETURN
300 IF( left .AND. tran )
THEN
303 ib = min( nb, k-i+1 )
304 mb = min( m-l+i+ib-1, m )
310 CALL stprfb(
'L',
'T',
'F',
'C', mb, n, ib, lb,
311 $ v( 1, i ), ldv, t( 1, i ), ldt,
312 $ a( i, 1 ), lda, b, ldb, work, ib )
315 ELSE IF( right .AND. notran )
THEN
318 ib = min( nb, k-i+1 )
319 mb = min( n-l+i+ib-1, n )
325 CALL stprfb(
'R',
'N',
'F',
'C', m, mb, ib, lb,
326 $ v( 1, i ), ldv, t( 1, i ), ldt,
327 $ a( 1, i ), lda, b, ldb, work, m )
330 ELSE IF( left .AND. notran )
THEN
334 ib = min( nb, k-i+1 )
335 mb = min( m-l+i+ib-1, m )
341 CALL stprfb(
'L',
'N',
'F',
'C', mb, n, ib, lb,
342 $ v( 1, i ), ldv, t( 1, i ), ldt,
343 $ a( i, 1 ), lda, b, ldb, work, ib )
346 ELSE IF( right .AND. tran )
THEN
350 ib = min( nb, k-i+1 )
351 mb = min( n-l+i+ib-1, n )
357 CALL stprfb(
'R',
'T',
'F',
'C', m, mb, ib, lb,
358 $ v( 1, i ), ldv, t( 1, i ), ldt,
359 $ 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 stpmqrt(SIDE, TRANS, M, N, K, L, NB, V, LDV, T, LDT, A, LDA, B, LDB, WORK, INFO)
STPMQRT
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.