122 SUBROUTINE cgeql2( M, N, A, LDA, TAU, WORK, INFO )
129 INTEGER INFO, LDA, M, N
132 COMPLEX A( lda, * ), TAU( * ), WORK( * )
139 parameter( one = ( 1.0e+0, 0.0e+0 ) )
149 INTRINSIC conjg, max, min
158 ELSE IF( n.LT.0 )
THEN 160 ELSE IF( lda.LT.max( 1, m ) )
THEN 164 CALL xerbla(
'CGEQL2', -info )
175 alpha = a( m-k+i, n-k+i )
176 CALL clarfg( m-k+i, alpha, a( 1, n-k+i ), 1, tau( i ) )
180 a( m-k+i, n-k+i ) = one
181 CALL clarf(
'Left', m-k+i, n-k+i-1, a( 1, n-k+i ), 1,
182 $ conjg( tau( i ) ), a, lda, work )
183 a( m-k+i, n-k+i ) = alpha
subroutine clarfg(N, ALPHA, X, INCX, TAU)
CLARFG generates an elementary reflector (Householder matrix).
subroutine xerbla(SRNAME, INFO)
XERBLA
subroutine clarf(SIDE, M, N, V, INCV, TAU, C, LDC, WORK)
CLARF applies an elementary reflector to a general rectangular matrix.
subroutine cgeql2(M, N, A, LDA, TAU, WORK, INFO)
CGEQL2 computes the QL factorization of a general rectangular matrix using an unblocked algorithm...