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,
246 $ b( i, 1 ), ldb, one, t( m, 1 ), ldt )
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 xerbla(SRNAME, INFO)
XERBLA
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 dtplqt2(M, N, L, A, LDA, B, LDB, T, LDT, INFO)
DTPLQT2 computes a LQ factorization of a real or complex "triangular-pentagonal" matrix, which is composed of a triangular block and a pentagonal block, using the compact WY representation for Q.
subroutine dtrmv(UPLO, TRANS, DIAG, N, A, LDA, X, INCX)
DTRMV