216 SUBROUTINE dtpmlqt( SIDE, TRANS, M, N, K, L, MB, 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, MB, LDT
229 DOUBLE PRECISION V( ldv, * ), A( lda, * ), B( ldb, * ),
230 $ t( ldt, * ), work( * )
237 LOGICAL LEFT, RIGHT, TRAN, NOTRAN
238 INTEGER I, IB, NB, LB, KF, LDAQ
255 left = lsame( side,
'L' )
256 right = lsame( side,
'R' )
257 tran = lsame( trans,
'T' )
258 notran = lsame( trans,
'N' )
262 ELSE IF ( right )
THEN 265 IF( .NOT.left .AND. .NOT.right )
THEN 267 ELSE IF( .NOT.tran .AND. .NOT.notran )
THEN 269 ELSE IF( m.LT.0 )
THEN 271 ELSE IF( n.LT.0 )
THEN 273 ELSE IF( k.LT.0 )
THEN 275 ELSE IF( l.LT.0 .OR. l.GT.k )
THEN 277 ELSE IF( mb.LT.1 .OR. (mb.GT.k .AND. k.GT.0) )
THEN 279 ELSE IF( ldv.LT.k )
THEN 281 ELSE IF( ldt.LT.mb )
THEN 283 ELSE IF( lda.LT.ldaq )
THEN 285 ELSE IF( ldb.LT.max( 1, m ) )
THEN 290 CALL xerbla(
'DTPMLQT', -info )
296 IF( m.EQ.0 .OR. n.EQ.0 .OR. k.EQ.0 )
RETURN 298 IF( left .AND. notran )
THEN 301 ib = min( mb, k-i+1 )
302 nb = min( m-l+i+ib-1, m )
308 CALL dtprfb(
'L',
'T',
'F',
'R', nb, n, ib, lb,
309 $ v( i, 1 ), ldv, t( 1, i ), ldt,
310 $ a( i, 1 ), lda, b, ldb, work, ib )
313 ELSE IF( right .AND. tran )
THEN 316 ib = min( mb, k-i+1 )
317 nb = min( n-l+i+ib-1, n )
323 CALL dtprfb(
'R',
'N',
'F',
'R', m, nb, ib, lb,
324 $ v( i, 1 ), ldv, t( 1, i ), ldt,
325 $ a( 1, i ), lda, b, ldb, work, m )
328 ELSE IF( left .AND. tran )
THEN 332 ib = min( mb, k-i+1 )
333 nb = min( m-l+i+ib-1, m )
339 CALL dtprfb(
'L',
'N',
'F',
'R', nb, n, ib, lb,
340 $ v( i, 1 ), ldv, t( 1, i ), ldt,
341 $ a( i, 1 ), lda, b, ldb, work, ib )
344 ELSE IF( right .AND. notran )
THEN 348 ib = min( mb, k-i+1 )
349 nb = min( n-l+i+ib-1, n )
355 CALL dtprfb(
'R',
'T',
'F',
'R', m, nb, ib, lb,
356 $ v( i, 1 ), ldv, t( 1, i ), ldt,
357 $ a( 1, i ), lda, b, ldb, work, m )
subroutine dtprfb(SIDE, TRANS, DIRECT, STOREV, M, N, K, L, V, LDV, T, LDT, A, LDA, B, LDB, WORK, LDWORK)
DTPRFB applies a real or complex "triangular-pentagonal" blocked reflector to a real or complex matri...
subroutine dtpmlqt(SIDE, TRANS, M, N, K, L, MB, V, LDV, T, LDT, A, LDA, B, LDB, WORK, INFO)
DTPMLQT
subroutine xerbla(SRNAME, INFO)
XERBLA
subroutine dlarfb(SIDE, TRANS, DIRECT, STOREV, M, N, K, V, LDV, T, LDT, C, LDC, WORK, LDWORK)
DLARFB applies a block reflector or its transpose to a general rectangular matrix.