172 SUBROUTINE ztpqrt2( M, N, L, A, LDA, B, LDB, T, LDT, INFO )
179 INTEGER INFO, LDA, LDB, LDT, N, M, L
182 COMPLEX*16 A( lda, * ), B( ldb, * ), T( ldt, * )
189 parameter( one = (1.0,0.0), zero = (0.0,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(
'ZTPQRT2', -info )
226 IF( n.EQ.0 .OR. m.EQ.0 )
RETURN 233 CALL zlarfg( p+1, a( i, i ), b( 1, i ), 1, t( i, 1 ) )
239 t( j, n ) = conjg(a( i, i+j ))
241 CALL zgemv(
'C', p, n-i, one, b( 1, i+1 ), ldb,
242 $ b( 1, i ), 1, one, t( 1, n ), 1 )
246 alpha = -conjg(t( i, 1 ))
248 a( i, i+j ) = a( i, i+j ) + alpha*conjg(t( j, n ))
250 CALL zgerc( 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 ztrmv(
'U',
'C',
'N', p, b( mp, 1 ), ldb,
278 CALL zgemv(
'C', l, i-1-p, alpha, b( mp, np ), ldb,
279 $ b( mp, i ), 1, zero, t( np, i ), 1 )
283 CALL zgemv(
'C', m-l, i-1, alpha, b, ldb, b( 1, i ), 1,
284 $ one, t( 1, i ), 1 )
288 CALL ztrmv(
'U',
'N',
'N', i-1, t, ldt, t( 1, i ), 1 )
292 t( i, i ) = t( i, 1 )
subroutine zlarfg(N, ALPHA, X, INCX, TAU)
ZLARFG generates an elementary reflector (Householder matrix).
subroutine xerbla(SRNAME, INFO)
XERBLA
subroutine ztpqrt2(M, N, L, A, LDA, B, LDB, T, LDT, INFO)
ZTPQRT2 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 zgerc(M, N, ALPHA, X, INCX, Y, INCY, A, LDA)
ZGERC
subroutine ztrmv(UPLO, TRANS, DIAG, N, A, LDA, X, INCX)
ZTRMV
subroutine zgemv(TRANS, M, N, ALPHA, A, LDA, X, INCX, BETA, Y, INCY)
ZGEMV