176 SUBROUTINE stplqt2( M, N, L, A, LDA, B, LDB, T, LDT, INFO )
183 INTEGER INFO, LDA, LDB, LDT, N, M, L
186 REAL A( LDA, * ), B( LDB, * ), T( LDT, * )
193 parameter( one = 1.0, zero = 0.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(
'STPLQT2', -info )
230 IF( n.EQ.0 .OR. m.EQ.0 )
RETURN
237 CALL slarfg( p+1, a( i, i ), b( i, 1 ), ldb, t( 1, i ) )
243 t( m, j ) = (a( i+j, i ))
245 CALL sgemv(
'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 sger( 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 strmv(
'L',
'N',
'N', p, b( 1, np ), ldb,
282 CALL sgemv(
'N', i-1-p, l, alpha, b( mp, np ), ldb,
283 $ b( i, np ), ldb, zero, t( i,mp ), ldt )
287 CALL sgemv(
'N', i-1, n-l, alpha, b, ldb, b( i, 1 ), ldb,
288 $ one, t( i, 1 ), ldt )
292 CALL strmv(
'L',
'T',
'N', i-1, t, ldt, t( i, 1 ), ldt )
296 t( i, i ) = t( 1, i )
subroutine xerbla(srname, info)
subroutine sgemv(trans, m, n, alpha, a, lda, x, incx, beta, y, incy)
SGEMV
subroutine sger(m, n, alpha, x, incx, y, incy, a, lda)
SGER
subroutine slarfg(n, alpha, x, incx, tau)
SLARFG generates an elementary reflector (Householder matrix).
subroutine stplqt2(m, n, l, a, lda, b, ldb, t, ldt, info)
STPLQT2 computes a LQ factorization of a real or complex "triangular-pentagonal" matrix,...
subroutine strmv(uplo, trans, diag, n, a, lda, x, incx)
STRMV