CGEQLF  -  compute  a QL factorization of a complex M-by-N
       matrix A


SYNOPSIS

       SUBROUTINE CGEQLF( M, N, A, LDA, TAU, WORK, LWORK, INFO )

           INTEGER        INFO, LDA, LWORK, M, N

           COMPLEX        A( LDA, * ), TAU( * ), WORK( * )


PURPOSE

       CGEQLF computes a QL factorization  of  a  complex  M-by-N
       matrix A: A = Q * L.


ARGUMENTS

       M       (input) INTEGER
               The number of rows of the matrix A.  M >= 0.

       N       (input) INTEGER
               The number of columns of the matrix A.  N >= 0.

       A       (input/output) COMPLEX array, dimension (LDA,N)
               On  entry,  the M-by-N matrix A.  On exit, if m >=
               n,  the  lower  triangle  of  the  subarray   A(m-
               n+1:m,1:n)  contains  the  N-by-N lower triangular
               matrix L; if m <= n, the elements on and below the
               (n-m)-th  superdiagonal  contain  the M-by-N lower
               trapezoidal matrix L; the remaining elements, with
               the array TAU, represent the unitary matrix Q as a
               product  of  elementary  reflectors  (see  Further
               Details).   LDA      (input)  INTEGER  The leading
               dimension of the array A.  LDA >= max(1,M).

       TAU     (output) COMPLEX array, dimension (min(M,N))
               The scalar factors of  the  elementary  reflectors
               (see Further Details).

       WORK    (workspace/output) COMPLEX array, dimension
               (LWORK)
               On exit, if INFO = 0, WORK(1) returns the  optimal
               LWORK.

       LWORK   (input) INTEGER
               The   dimension  of  the  array  WORK.   LWORK  >=
               max(1,N).  For optimum performance LWORK >=  N*NB,
               where NB is the optimal blocksize.

               If  LWORK = -1, then a workspace query is assumed;
               the routine only calculates the  optimal  size  of
               the  WORK  array,  returns this value as the first
               entry of the WORK  array,  and  no  error  message
               related to LWORK is issued by XERBLA.

               = 0:  successful exit
               < 0:  if INFO = -i, the i-th argument had an ille­
               gal value


FURTHER DETAILS

       The matrix Q is represented as  a  product  of  elementary
       reflectors

          Q = H(k) . . . H(2) H(1), where k = min(m,n).

       Each H(i) has the form

          H(i) = I - tau * v * v'

       where  tau  is a complex scalar, and v is a complex vector
       with v(m-k+i+1:m) = 0 and v(m-k+i) =  1;  v(1:m-k+i-1)  is
       stored on exit in A(1:m-k+i-1,n-k+i), and tau in TAU(i).


Man(1) output converted with man2html