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.