176 SUBROUTINE dtplqt2( M, N, L, A, LDA, B, LDB, T, LDT, INFO )
183 INTEGER INFO, LDA, LDB, LDT, N, M, L
186 DOUBLE PRECISION A( LDA, * ), B( LDB, * ), T( LDT, * )
192 DOUBLE PRECISION ONE, ZERO
193 parameter( one = 1.0, zero = 0.0 )
196 INTEGER I, J, P, MP, NP
197 DOUBLE PRECISION ALPHA
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(
'DTPLQT2', -info )
230 IF( n.EQ.0 .OR. m.EQ.0 )
RETURN
237 CALL dlarfg( p+1, a( i, i ), b( i, 1 ), ldb, t( 1, i ) )
243 t( m, j ) = (a( i+j, i ))
245 CALL dgemv(
'N', m-i, p, one, b( i+1, 1 ), ldb,
252 a( i+j, i ) = a( i+j, i ) + alpha*(t( m, j ))
254 CALL dger( m-i, p, alpha, t( m, 1 ), ldt,
255 $ b( i, 1 ), ldb, b( i+1, 1 ), ldb )
275 t( i, j ) = alpha*b( i, n-l+j )
277 CALL dtrmv(
'L',
'N',
'N', p, b( 1, np ), ldb,
282 CALL dgemv(
'N', i-1-p, l, alpha, b( mp, np ), ldb,
283 $ b( i, np ), ldb, zero, t( i,mp ), ldt )
287 CALL dgemv(
'N', i-1, n-l, alpha, b, ldb, b( i, 1 ), ldb,
288 $ one, t( i, 1 ), ldt )
292 CALL dtrmv(
'L',
'T',
'N', i-1, t, ldt, t( i, 1 ), ldt )
296 t( i, i ) = t( 1, i )
subroutine dlarfg(n, alpha, x, incx, tau)
DLARFG generates an elementary reflector (Householder matrix).
subroutine dtplqt2(m, n, l, a, lda, b, ldb, t, ldt, info)
DTPLQT2 computes a LQ factorization of a real or complex "triangular-pentagonal" matrix,...
subroutine dgemv(trans, m, n, alpha, a, lda, x, incx, beta, y, incy)
DGEMV
subroutine dger(m, n, alpha, x, incx, y, incy, a, lda)
DGER