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