124 SUBROUTINE zgerq2( M, N, A, LDA, TAU, WORK, INFO )
132 INTEGER INFO, LDA, M, N
135 COMPLEX*16 A( lda, * ), TAU( * ), WORK( * )
142 parameter ( one = ( 1.0d+0, 0.0d+0 ) )
161 ELSE IF( n.LT.0 )
THEN
163 ELSE IF( lda.LT.max( 1, m ) )
THEN
167 CALL xerbla(
'ZGERQ2', -info )
178 CALL zlacgv( n-k+i, a( m-k+i, 1 ), lda )
179 alpha = a( m-k+i, n-k+i )
180 CALL zlarfg( n-k+i, alpha, a( m-k+i, 1 ), lda, tau( i ) )
184 a( m-k+i, n-k+i ) = one
185 CALL zlarf(
'Right', m-k+i-1, n-k+i, a( m-k+i, 1 ), lda,
186 $ tau( i ), a, lda, work )
187 a( m-k+i, n-k+i ) = alpha
188 CALL zlacgv( n-k+i-1, a( m-k+i, 1 ), lda )
subroutine zlarfg(N, ALPHA, X, INCX, TAU)
ZLARFG generates an elementary reflector (Householder matrix).
subroutine xerbla(SRNAME, INFO)
XERBLA
subroutine zgerq2(M, N, A, LDA, TAU, WORK, INFO)
ZGERQ2 computes the RQ factorization of a general rectangular matrix using an unblocked algorithm...
subroutine zlarf(SIDE, M, N, V, INCV, TAU, C, LDC, WORK)
ZLARF applies an elementary reflector to a general rectangular matrix.
subroutine zlacgv(N, X, INCX)
ZLACGV conjugates a complex vector.