124 SUBROUTINE cgeql2( 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 ) )
152 INTRINSIC conjg, max, min
161 ELSE IF( n.LT.0 )
THEN 163 ELSE IF( lda.LT.max( 1, m ) )
THEN 167 CALL xerbla(
'CGEQL2', -info )
178 alpha = a( m-k+i, n-k+i )
179 CALL clarfg( m-k+i, alpha, a( 1, n-k+i ), 1, tau( i ) )
183 a( m-k+i, n-k+i ) = one
184 CALL clarf(
'Left', m-k+i, n-k+i-1, a( 1, n-k+i ), 1,
185 $ conjg( tau( i ) ), a, lda, work )
186 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 cgeql2(M, N, A, LDA, TAU, WORK, INFO)
CGEQL2 computes the QL factorization of a general rectangular matrix using an unblocked algorithm...
subroutine clarf(SIDE, M, N, V, INCV, TAU, C, LDC, WORK)
CLARF applies an elementary reflector to a general rectangular matrix.