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)
XERBLA
subroutine strmv(UPLO, TRANS, DIAG, N, A, LDA, X, INCX)
STRMV
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, which is composed of a triangular block and a pentagonal block, using the compact WY representation for Q.