161 SUBROUTINE ctplqt2( M, N, L, A, LDA, B, LDB, T, LDT, INFO )
168 INTEGER INFO, LDA, LDB, LDT, N, M, L
171 COMPLEX A( LDA, * ), B( LDB, * ), T( LDT, * )
178 parameter( zero = ( 0.0e+0, 0.0e+0 ),one = ( 1.0e+0, 0.0e+0 ) )
181 INTEGER I, J, P, MP, NP
197 ELSE IF( n.LT.0 )
THEN
199 ELSE IF( l.LT.0 .OR. l.GT.min(m,n) )
THEN
201 ELSE IF( lda.LT.max( 1, m ) )
THEN
203 ELSE IF( ldb.LT.max( 1, m ) )
THEN
205 ELSE IF( ldt.LT.max( 1, m ) )
THEN
209 CALL xerbla(
'CTPLQT2', -info )
215 IF( n.EQ.0 .OR. m.EQ.0 )
RETURN
222 CALL clarfg( p+1, a( i, i ), b( i, 1 ), ldb, t( 1, i ) )
226 b( i, j ) = conjg(b(i,j))
232 t( m, j ) = (a( i+j, i ))
234 CALL cgemv(
'N', m-i, p, one, b( i+1, 1 ), ldb,
235 $ b( i, 1 ), ldb, one, t( m, 1 ), ldt )
241 a( i+j, i ) = a( i+j, i ) + alpha*(t( m, j ))
243 CALL cgerc( m-i, p, (alpha), t( m, 1 ), ldt,
244 $ b( i, 1 ), ldb, b( i+1, 1 ), ldb )
246 b( i, j ) = conjg(b(i,j))
269 t( i, j ) = (alpha*b( i, n-l+j ))
271 CALL ctrmv(
'L',
'N',
'N', p, b( 1, np ), ldb,
276 CALL cgemv(
'N', i-1-p, l, alpha, b( mp, np ), ldb,
277 $ b( i, np ), ldb, zero, t( i,mp ), ldt )
282 CALL cgemv(
'N', i-1, n-l, alpha, b, ldb, b( i, 1 ), ldb,
283 $ one, t( i, 1 ), ldt )
292 CALL ctrmv(
'L',
'C',
'N', i-1, t, ldt, t( i, 1 ), ldt )
302 t( i, i ) = t( 1, i )
subroutine xerbla(srname, info)
subroutine cgemv(trans, m, n, alpha, a, lda, x, incx, beta, y, incy)
CGEMV
subroutine cgerc(m, n, alpha, x, incx, y, incy, a, lda)
CGERC
subroutine clarfg(n, alpha, x, incx, tau)
CLARFG generates an elementary reflector (Householder matrix).
subroutine ctplqt2(m, n, l, a, lda, b, ldb, t, ldt, info)
CTPLQT2
subroutine ctrmv(uplo, trans, diag, n, a, lda, x, incx)
CTRMV