172 SUBROUTINE stpqrt2( M, N, L, A, LDA, B, LDB, T, LDT, INFO )
179 INTEGER INFO, LDA, LDB, LDT, N, M, L
182 REAL A( lda, * ), B( ldb, * ), T( ldt, * )
189 parameter( one = 1.0, zero = 0.0 )
192 INTEGER I, J, P, MP, NP
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(
'STPQRT2', -info )
226 IF( n.EQ.0 .OR. m.EQ.0 )
RETURN 233 CALL slarfg( p+1, a( i, i ), b( 1, i ), 1, t( i, 1 ) )
239 t( j, n ) = (a( i, i+j ))
241 CALL sgemv(
'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 sger( 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 strmv(
'U',
'T',
'N', p, b( mp, 1 ), ldb,
278 CALL sgemv(
'T', l, i-1-p, alpha, b( mp, np ), ldb,
279 $ b( mp, i ), 1, zero, t( np, i ), 1 )
283 CALL sgemv(
'T', m-l, i-1, alpha, b, ldb, b( 1, i ), 1,
284 $ one, t( 1, i ), 1 )
288 CALL strmv(
'U',
'N',
'N', i-1, t, ldt, t( 1, i ), 1 )
292 t( i, i ) = t( i, 1 )
subroutine xerbla(SRNAME, INFO)
XERBLA
subroutine stpqrt2(M, N, L, A, LDA, B, LDB, T, LDT, INFO)
STPQRT2 computes a QR 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 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).