161 SUBROUTINE ctplqt2( M, N, L, A, LDA, B, LDB, T, LDT, INFO )
168 INTEGER INFO, LDA, LDB, LDT, N, M, L
171 COMPLEX A( lda, * ), B( ldb, * ), T( ldt, * )
178 parameter( zero = ( 0.0e+0, 0.0e+0 ),one = ( 1.0e+0, 0.0e+0 ) )
181 INTEGER I, J, P, MP, NP
197 ELSE IF( n.LT.0 )
THEN 199 ELSE IF( l.LT.0 .OR. l.GT.min(m,n) )
THEN 201 ELSE IF( lda.LT.max( 1, m ) )
THEN 203 ELSE IF( ldb.LT.max( 1, m ) )
THEN 205 ELSE IF( ldt.LT.max( 1, m ) )
THEN 209 CALL xerbla(
'CTPLQT2', -info )
215 IF( n.EQ.0 .OR. m.EQ.0 )
RETURN 222 CALL clarfg( p+1, a( i, i ), b( i, 1 ), ldb, t( 1, i ) )
226 b( i, j ) = conjg(b(i,j))
232 t( m, j ) = (a( i+j, i ))
234 CALL cgemv(
'N', m-i, p, one, b( i+1, 1 ), ldb,
235 $ b( i, 1 ), ldb, one, t( m, 1 ), ldt )
241 a( i+j, i ) = a( i+j, i ) + alpha*(t( m, j ))
243 CALL cgerc( m-i, p, (alpha), t( m, 1 ), ldt,
244 $ b( i, 1 ), ldb, b( i+1, 1 ), ldb )
246 b( i, j ) = conjg(b(i,j))
269 t( i, j ) = (alpha*b( i, n-l+j ))
271 CALL ctrmv(
'L',
'N',
'N', p, b( 1, np ), ldb,
276 CALL cgemv(
'N', i-1-p, l, alpha, b( mp, np ), ldb,
277 $ b( i, np ), ldb, zero, t( i,mp ), ldt )
282 CALL cgemv(
'N', i-1, n-l, alpha, b, ldb, b( i, 1 ), ldb,
283 $ one, t( i, 1 ), ldt )
292 CALL ctrmv(
'L',
'C',
'N', i-1, t, ldt, t( i, 1 ), ldt )
302 t( i, i ) = t( 1, i )
subroutine clarfg(N, ALPHA, X, INCX, TAU)
CLARFG generates an elementary reflector (Householder matrix).
subroutine cgemv(TRANS, M, N, ALPHA, A, LDA, X, INCX, BETA, Y, INCY)
CGEMV
subroutine xerbla(SRNAME, INFO)
XERBLA
subroutine ctplqt2(M, N, L, A, LDA, B, LDB, T, LDT, INFO)
CTPLQT2
subroutine cgerc(M, N, ALPHA, X, INCX, Y, INCY, A, LDA)
CGERC
subroutine ctrmv(UPLO, TRANS, DIAG, N, A, LDA, X, INCX)
CTRMV