172 SUBROUTINE ctplqt( M, N, L, MB, A, LDA, B, LDB, T, LDT, WORK,
180 INTEGER INFO, LDA, LDB, LDT, N, M, L, MB
183 COMPLEX A( lda, * ), B( ldb, * ), T( ldt, * ), WORK( * )
190 INTEGER I, IB, LB, NB, IINFO
202 ELSE IF( n.LT.0 )
THEN 204 ELSE IF( l.LT.0 .OR. (l.GT.min(m,n) .AND. min(m,n).GE.0))
THEN 206 ELSE IF( mb.LT.1 .OR. (mb.GT.m .AND. m.GT.0))
THEN 208 ELSE IF( lda.LT.max( 1, m ) )
THEN 210 ELSE IF( ldb.LT.max( 1, m ) )
THEN 212 ELSE IF( ldt.LT.mb )
THEN 216 CALL xerbla(
'CTPLQT', -info )
222 IF( m.EQ.0 .OR. n.EQ.0 )
RETURN 228 ib = min( m-i+1, mb )
229 nb = min( n-l+i+ib-1, n )
236 CALL ctplqt2( ib, nb, lb, a(i,i), lda, b( i, 1 ), ldb,
237 $ t(1, i ), ldt, iinfo )
242 CALL ctprfb(
'R',
'N',
'F',
'R', m-i-ib+1, nb, ib, lb,
243 $ b( i, 1 ), ldb, t( 1, i ), ldt,
244 $ a( i+ib, i ), lda, b( i+ib, 1 ), ldb,
subroutine xerbla(SRNAME, INFO)
XERBLA
subroutine ctplqt2(M, N, L, A, LDA, B, LDB, T, LDT, INFO)
CTPLQT2
subroutine ctprfb(SIDE, TRANS, DIRECT, STOREV, M, N, K, L, V, LDV, T, LDT, A, LDA, B, LDB, WORK, LDWORK)
CTPRFB applies a complex "triangular-pentagonal" block reflector to a complex matrix, which is composed of two blocks.
subroutine ctplqt(M, N, L, MB, A, LDA, B, LDB, T, LDT, WORK, INFO)
CTPLQT