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 cgemv(trans, m, n, alpha, a, lda, x, incx, beta, y, incy)
CGEMV