129 SUBROUTINE zgeqr2( M, N, A, LDA, TAU, WORK, INFO )
136 INTEGER INFO, LDA, M, N
139 COMPLEX*16 A( lda, * ), TAU( * ), WORK( * )
146 parameter( one = ( 1.0d+0, 0.0d+0 ) )
156 INTRINSIC dconjg, max, min
165 ELSE IF( n.LT.0 )
THEN 167 ELSE IF( lda.LT.max( 1, m ) )
THEN 171 CALL xerbla(
'ZGEQR2', -info )
181 CALL zlarfg( m-i+1, a( i, i ), a( min( i+1, m ), i ), 1,
189 CALL zlarf(
'Left', m-i+1, n-i, a( i, i ), 1,
190 $ dconjg( tau( i ) ), a( i, i+1 ), lda, work )
subroutine zlarf(SIDE, M, N, V, INCV, TAU, C, LDC, WORK)
ZLARF applies an elementary reflector to a general rectangular matrix.
subroutine zlarfg(N, ALPHA, X, INCX, TAU)
ZLARFG generates an elementary reflector (Householder matrix).
subroutine xerbla(SRNAME, INFO)
XERBLA
subroutine zgeqr2(M, N, A, LDA, TAU, WORK, INFO)
ZGEQR2 computes the QR factorization of a general rectangular matrix using an unblocked algorithm...