176 SUBROUTINE ztplqt2( M, N, L, A, LDA, B, LDB, T, LDT, INFO )
183 INTEGER INFO, LDA, LDB, LDT, N, M, L
186 COMPLEX*16 A( LDA, * ), B( LDB, * ), T( LDT, * )
193 parameter( zero = ( 0.0d+0, 0.0d+0 ),one = ( 1.0d+0, 0.0d+0 ) )
196 INTEGER I, J, P, MP, NP
212 ELSE IF( n.LT.0 )
THEN
214 ELSE IF( l.LT.0 .OR. l.GT.min(m,n) )
THEN
216 ELSE IF( lda.LT.max( 1, m ) )
THEN
218 ELSE IF( ldb.LT.max( 1, m ) )
THEN
220 ELSE IF( ldt.LT.max( 1, m ) )
THEN
224 CALL xerbla(
'ZTPLQT2', -info )
230 IF( n.EQ.0 .OR. m.EQ.0 )
RETURN
237 CALL zlarfg( p+1, a( i, i ), b( i, 1 ), ldb, t( 1, i ) )
241 b( i, j ) = conjg(b(i,j))
247 t( m, j ) = (a( i+j, i ))
249 CALL zgemv(
'N', m-i, p, one, b( i+1, 1 ), ldb,
250 $ b( i, 1 ), ldb, one, t( m, 1 ), ldt )
256 a( i+j, i ) = a( i+j, i ) + alpha*(t( m, j ))
258 CALL zgerc( m-i, p, (alpha), t( m, 1 ), ldt,
259 $ b( i, 1 ), ldb, b( i+1, 1 ), ldb )
261 b( i, j ) = conjg(b(i,j))
284 t( i, j ) = (alpha*b( i, n-l+j ))
286 CALL ztrmv(
'L',
'N',
'N', p, b( 1, np ), ldb,
291 CALL zgemv(
'N', i-1-p, l, alpha, b( mp, np ), ldb,
292 $ b( i, np ), ldb, zero, t( i,mp ), ldt )
297 CALL zgemv(
'N', i-1, n-l, alpha, b, ldb, b( i, 1 ), ldb,
298 $ one, t( i, 1 ), ldt )
307 CALL ztrmv(
'L',
'C',
'N', i-1, t, ldt, t( i, 1 ), ldt )
317 t( i, i ) = t( 1, i )
subroutine xerbla(srname, info)
subroutine zgemv(trans, m, n, alpha, a, lda, x, incx, beta, y, incy)
ZGEMV
subroutine zgerc(m, n, alpha, x, incx, y, incy, a, lda)
ZGERC
subroutine zlarfg(n, alpha, x, incx, tau)
ZLARFG generates an elementary reflector (Householder matrix).
subroutine ztplqt2(m, n, l, a, lda, b, ldb, t, ldt, info)
ZTPLQT2 computes a LQ factorization of a real or complex "triangular-pentagonal" matrix,...
subroutine ztrmv(uplo, trans, diag, n, a, lda, x, incx)
ZTRMV