172 SUBROUTINE dtpqrt2( M, N, L, A, LDA, B, LDB, T, LDT, INFO )
179 INTEGER INFO, LDA, LDB, LDT, N, M, L
182 DOUBLE PRECISION A( LDA, * ), B( LDB, * ), T( LDT, * )
188 DOUBLE PRECISION ONE, ZERO
189 parameter( one = 1.0, zero = 0.0 )
192 INTEGER I, J, P, MP, NP
193 DOUBLE PRECISION ALPHA
208 ELSE IF( n.LT.0 )
THEN
210 ELSE IF( l.LT.0 .OR. l.GT.min(m,n) )
THEN
212 ELSE IF( lda.LT.max( 1, n ) )
THEN
214 ELSE IF( ldb.LT.max( 1, m ) )
THEN
216 ELSE IF( ldt.LT.max( 1, n ) )
THEN
220 CALL xerbla(
'DTPQRT2', -info )
226 IF( n.EQ.0 .OR. m.EQ.0 )
RETURN
233 CALL dlarfg( p+1, a( i, i ), b( 1, i ), 1, t( i, 1 ) )
239 t( j, n ) = (a( i, i+j ))
241 CALL dgemv(
'T', p, n-i, one, b( 1, i+1 ), ldb,
242 $ b( 1, i ), 1, one, t( 1, n ), 1 )
248 a( i, i+j ) = a( i, i+j ) + alpha*(t( j, n ))
250 CALL dger( p, n-i, alpha, b( 1, i ), 1,
251 $ t( 1, n ), 1, b( 1, i+1 ), ldb )
271 t( j, i ) = alpha*b( m-l+j, i )
273 CALL dtrmv(
'U',
'T',
'N', p, b( mp, 1 ), ldb,
278 CALL dgemv(
'T', l, i-1-p, alpha, b( mp, np ), ldb,
279 $ b( mp, i ), 1, zero, t( np, i ), 1 )
283 CALL dgemv(
'T', m-l, i-1, alpha, b, ldb, b( 1, i ), 1,
284 $ one, t( 1, i ), 1 )
288 CALL dtrmv(
'U',
'N',
'N', i-1, t, ldt, t( 1, i ), 1 )
292 t( i, i ) = t( i, 1 )
subroutine xerbla(srname, info)
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
subroutine dlarfg(n, alpha, x, incx, tau)
DLARFG generates an elementary reflector (Householder matrix).
subroutine dtpqrt2(m, n, l, a, lda, b, ldb, t, ldt, info)
DTPQRT2 computes a QR factorization of a real or complex "triangular-pentagonal" matrix,...
subroutine dtrmv(uplo, trans, diag, n, a, lda, x, incx)
DTRMV