214 SUBROUTINE ctpmqrt( 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, , LDA, LDB, M, N, L, NB, LDT
226 COMPLEX ( 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,
'C' )
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
282 ELSE IF( lda.LT.ldaq )
THEN
284 ELSE IF( ldb.LT.
max( 1, m ) )
THEN
289 CALL xerbla(
'CTPMQRT', -info )
295 IF( m.EQ.0 .OR. n.EQ.0 .OR. k.EQ.0 )
RETURN
300 ib =
min( nb, k-i+1 )
301 mb =
min( m-l+i+ib-1, m )
307 CALL ctprfb(
'L',
'C',
'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 ctprfb(
'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 ctprfb( '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.AND.
ELSE IF( RIGHT TRAN ) THEN
347 IB = MIN( NB, K-I+1 )
348 MB = MIN( N-L+I+IB-1, N )
354 CALL CTPRFB( 'r
', 'c
', '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 ctprfb(side, trans, direct, storev, m, n, k, l, v, ldv, t, ldt, a, lda, b, ldb, work, ldwork)
CTPRFB applies a real or complex "triangular-pentagonal" blocked reflector to a real or complex matri...
subroutine ctpmqrt(side, trans, m, n, k, l, nb, v, ldv, t, ldt, a, lda, b, ldb, work, info)
CTPMQRT