126 SUBROUTINE zgeqrt2( M, N, A, LDA, T, LDT, INFO )
133 INTEGER INFO, LDA, LDT, M, N
136 COMPLEX*16 A( lda, * ), T( ldt, * )
143 parameter( one = (1.0d+00,0.0d+00), zero = (0.0d+00,0.0d+00) )
147 COMPLEX*16 AII, ALPHA
159 ELSE IF( m.LT.n )
THEN 161 ELSE IF( lda.LT.max( 1, m ) )
THEN 163 ELSE IF( ldt.LT.max( 1, n ) )
THEN 167 CALL xerbla(
'ZGEQRT2', -info )
177 CALL zlarfg( m-i+1, a( i, i ), a( min( i+1, m ), i ), 1,
188 CALL zgemv(
'C',m-i+1, n-i, one, a( i, i+1 ), lda,
189 $ a( i, i ), 1, zero, t( 1, n ), 1 )
193 alpha = -conjg(t( i, 1 ))
194 CALL zgerc( m-i+1, n-i, alpha, a( i, i ), 1,
195 $ t( 1, n ), 1, a( i, i+1 ), lda )
207 CALL zgemv(
'C', m-i+1, i-1, alpha, a( i, 1 ), lda,
208 $ a( i, i ), 1, zero, t( 1, i ), 1 )
213 CALL ztrmv(
'U',
'N',
'N', i-1, t, ldt, t( 1, i ), 1 )
217 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 zgerc(M, N, ALPHA, X, INCX, Y, INCY, A, LDA)
ZGERC
subroutine zgeqrt2(M, N, A, LDA, T, LDT, INFO)
ZGEQRT2 computes a QR factorization of a general real or complex matrix using the compact WY represen...
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